Heim > Backend-Entwicklung > PHP-Problem > PHP vergleicht Arrays auf Gleichheit

PHP vergleicht Arrays auf Gleichheit

WBOY
Freigeben: 2023-05-07 14:44:09
Original
543 Leute haben es durchsucht

PHP ist eine leistungsstarke und weit verbreitete Programmiersprache. Sie bietet viele Array-bezogene Funktionen und Methoden, sodass Entwickler problemlos verschiedene Operationen an Arrays durchführen können. Bei der Verwendung von Arrays müssen wir häufig vergleichen, ob zwei Arrays gleich sind. In diesem Artikel wird vorgestellt, wie PHP Arrays auf Gleichheit vergleicht, sowie einige damit verbundene praktische Fähigkeiten.

  1. Verwenden Sie den ==-Operator

Sie können den „=="-Operator in PHP verwenden, um zu vergleichen, ob zwei Arrays gleich sind. Zwei Arrays gelten als gleich, wenn sie dieselben Schlüssel-Wert-Paare haben und die Schlüssel-Wert-Paare in derselben Reihenfolge vorliegen. Beispiel:

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Nach dem Login kopieren

Das Ausgabeergebnis lautet „zwei Arrays sind gleich“, da $arr1 und $arr2 dieselben Schlüssel-Wert-Paare haben und die Reihenfolge dieser Schlüssel-Wert-Paare ebenfalls dieselbe ist.

Es ist jedoch zu beachten, dass der Operator „==“ nur vergleicht, ob die Schlüssel und Werte des Arrays gleich sind, nicht jedoch den Typ des Arrays. Zum Beispiel:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Nach dem Login kopieren

Das Ausgabeergebnis lautet „Beide Arrays sind gleich“, obwohl $arr1 und $arr2 unterschiedliche Typen haben. Dies liegt daran, dass der Operator „==" nur Schlüssel und Werte auf Gleichheit vergleicht, nicht Typen.

  1. Verwenden Sie den ===-Operator

Wenn Sie die Schlüssel, Werte und Typen des Arrays gleichzeitig auf Gleichheit vergleichen möchten, müssen Sie den Operator „===“ verwenden. Zum Beispiel:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 === $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Nach dem Login kopieren

Das Ausgabeergebnis lautet „Die beiden Arrays sind nicht gleich“, da die Typen von $arr1 und $arr2 unterschiedlich sind.

  1. Benutzerdefinierte Vergleichsfunktion

In einigen Fällen müssen wir möglicherweise vergleichen, ob die Schlüssel und Werte des Arrays gleich sind, aber die Reihenfolge der Schlüssel-Wert-Paare kann unterschiedlich sein. Zu diesem Zeitpunkt können Sie die Funktion usort() und die benutzerdefinierte Vergleichsfunktion von PHP verwenden, um dies zu erreichen. Zum Beispiel:

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Nach dem Login kopieren

Das Ausgabeergebnis ist „Zwei Arrays sind gleich“, weil wir die Funktion usort() und die benutzerdefinierte Vergleichsfunktion cmp() verwendet haben, um die beiden Arrays zu sortieren und zu vergleichen.

  1. Hinweise

Beim Array-Vergleich gibt es außerdem Folgendes zu beachten:

  • Wenn ein Array ein anderes Array mit denselben Schlüssel-Wert-Paaren, aber in einer anderen Reihenfolge enthält, werden diese als unterschiedliche Arrays betrachtet.
  • Wenn in zwei Arrays derselbe Schlüsselname vorhanden ist, die Schlüsselwerte jedoch unterschiedlich sind, werden sie als unterschiedliche Arrays betrachtet.
  • Wenn Sie eine benutzerdefinierte Vergleichsfunktion verwenden, müssen Sie sicherstellen, dass der Rückgabewert der Funktion 0, 1 oder -1 ist, um den Vergleich korrekt durchzuführen.
  1. Praktisches Beispiel

Das Folgende ist ein praktisches Beispiel, bei dem mehrere Methoden zum Vergleichen von Arrays auf Gleichheit verwendet werden:

<?php
// 比较数组是否相等
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

// 方法一:使用“==”运算符
if ($arr1 == $arr2) {
    echo '方法一:两个数组相等';
} else {
    echo '方法一:两个数组不相等';
}

echo '<br>';

// 方法二:使用“===”运算符
if ($arr1 === $arr2) {
    echo '方法二:两个数组相等';
} else {
    echo '方法二:两个数组不相等';
}

echo '<br>';

// 方法三:使用usort()函数和自定义比较函数
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '方法三:两个数组相等';
} else {
    echo '方法三:两个数组不相等';
}
?>
Nach dem Login kopieren

Nach dem Ausführen des obigen Codes werden die folgenden Ergebnisse ausgegeben:

方法一:两个数组相等
方法二:两个数组不相等
方法三:两个数组相等
Nach dem Login kopieren
  1. Zusammenfassung

In PHP Der Vergleich von Arrays auf Gleichheit ist eine sehr häufige Aufgabe. Wir können den Operator „==“ verwenden, um zu vergleichen, ob die Schlüssel und Werte des Arrays gleich sind, und den Operator „===“, um zu vergleichen, ob die Schlüssel, Werte und Typen des Arrays gleich sind Verwenden Sie zum Vergleichen auch die Funktion usort() und die benutzerdefinierte Vergleichsfunktion. Beim Vergleich von Arrays müssen Sie außerdem darauf achten, ob im Array derselbe Schlüsselname und Schlüsselwert vorhanden ist und ob die Reihenfolge der Schlüssel-Wert-Paare gleich ist. Mit der oben genannten Methode können Sie Arrays einfach auf Gleichheit vergleichen und so die Lesbarkeit und Wartbarkeit Ihres Codes verbessern.

Das obige ist der detaillierte Inhalt vonPHP vergleicht Arrays auf Gleichheit. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage