Heim >Backend-Entwicklung >PHP-Problem >Was passiert beim Vergleich von Arrays in PHP?
Array ist ein sehr wichtiger Datentyp in PHP. Er wird häufig in verschiedenen Szenarien verwendet, z. B. zum Speichern von Daten, zum Übergeben von Parametern usw. In vielen Fällen müssen wir zwei oder mehr Arrays vergleichen, um festzustellen, ob sie gleich sind. Was passiert also beim Vergleich von Arrays in PHP?
Es gibt zwei Operatoren zum Vergleichen von Arrays in PHP, nämlich „==“ und „===“. Die Vergleichsergebnisse dieser beiden Operatoren sind unterschiedlich. Schauen wir uns zunächst die Vergleichsregeln des „==“-Operators an.
Beim Vergleich zweier Arrays mit dem Operator „==“ wird jedes Element im Array einzeln verglichen. Insbesondere wird zunächst verglichen, ob die Anzahl der Elemente in den beiden Arrays gleich ist. Wenn die Zahlen gleich sind, vergleichen Sie jedes Element einzeln, andernfalls wird direkt false zurückgegeben. Wenn beim Vergleich von Elementen ein Element in einem Array einem Element in einem anderen Array gleich ist, werden die beiden Elemente als gleich betrachtet. Die hier erwähnte Gleichheit bedeutet, dass die beiden Elemente den gleichen Schlüsselwert und den gleichen Wert haben. Sie sind nur dann gleich, wenn der Schlüsselwert und der gleiche Wert gleich sind.
Hier ist ein Beispiel, das den Prozess des Vergleichs zweier Arrays mit dem Operator „==" demonstriert:
$arr1 = array("apple", "banana", "orange");
$arr2 = array(" banane ", "orange", "apple");
if ($arr1 == $arr2) {
echo "Two arrays are equal.";
} else {
echo "Two arrays are not equal.";
}
Das Ausgabeergebnis ist „Zwei Arrays sind nicht gleich.“ Dies liegt daran, dass Array $arr1 und Array $arr2 zwar dieselben Elemente, jedoch in unterschiedlicher Reihenfolge, enthalten, gemäß der Vergleichsregel des Operators „==“ jedoch nicht gleich sind.
Als nächstes werfen wir einen Blick auf die Vergleichsregeln des Operators „===“.
Wenn Sie den Operator „===“ zum Vergleichen zweier Arrays verwenden, wird zunächst verglichen, ob die Referenzen der beiden Arrays gleich sind, d. h. ob sie auf dasselbe Array verweisen. Wenn es sich nicht um dasselbe Array handelt, geben Sie direkt „false“ zurück. Andernfalls vergleichen Sie jedes Element gemäß den Regeln des „==“-Operators auf Gleichheit.
Das Folgende ist ein Beispiel, um die Verwendung des Operators „===" zu veranschaulichen.
$arr1 = array("Apfel", "Banane", "Orange");
$arr2 = Array("Apfel", "Banane", "Orange");
$arr3 = &$arr1;
if ($arr1 === $arr2) {
echo "Two arrays are equal.";
} else {
echo "Two arrays are not equal.";
}
if ($arr1 === $arr3) {
echo "Two arrays are the same.";
} else {
echo "Two arrays are not the same.";
}
Die Ausgabe ist „Zwei Arrays sind nicht gleich.“ und „Zwei Arrays sind gleich.“ Dies liegt daran, dass $arr1 und $arr2 zwar dieselben Elemente enthalten, aber nicht dasselbe Array sind; $arr1 und $arr3 sind dasselbe Array und zeigen auf denselben Speicherbereich.
Bei der eigentlichen Programmierung müssen wir uns entsprechend der tatsächlichen Situation für die Verwendung des Operators „==" oder „===" entscheiden. Wenn wir die Elementwerte, Schlüsselnamen und Reihenfolge im Array vergleichen müssen, sollten wir den Operator „==“ verwenden, wenn wir vergleichen müssen, ob das Array genau gleich ist, einschließlich Referenzen, Elementwerte, Schlüsselnamen und Reihenfolge , sollten wir das Operatorsymbol „===" verwenden.
Abschließend ist zu beachten, dass beim Vergleich von Arrays, wenn das Array ein Objekt enthält, die Vergleichsergebnisse von diesem Objekt bestimmt werden. Da der Objektvergleich in PHP referenzbasiert ist, werden die beiden Arrays als ungleich betrachtet, wenn das Objekt in zwei Arrays unterschiedliche Referenzen hat.
Das obige ist der detaillierte Inhalt vonWas passiert beim Vergleich von Arrays in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!