Was passiert beim Vergleich von Arrays in PHP?

PHPz
Freigeben: 2023-04-19 09:30:47
Original
614 Leute haben es durchsucht

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.";
Nach dem Login kopieren
Nach dem Login kopieren

} else {

echo "Two arrays are not equal.";
Nach dem Login kopieren
Nach dem Login kopieren

}

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.";
Nach dem Login kopieren
Nach dem Login kopieren

} else {

echo "Two arrays are not equal.";
Nach dem Login kopieren
Nach dem Login kopieren

}

if ($arr1 === $arr3) {

echo "Two arrays are the same.";
Nach dem Login kopieren

} else {

echo "Two arrays are not the same.";
Nach dem Login kopieren

}

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!