Heim > Artikel > Backend-Entwicklung > PHP vergleicht Arrays, um festzustellen, ob sie gleich sind
In PHP ist der Vergleich von Arrays, um festzustellen, ob sie gleich sind, ein sehr häufiger Vorgang. Um zwei Arrays zu vergleichen und festzustellen, ob sie gleich sind, müssen wir sie normalerweise sortieren und dann einzeln vergleichen, auch wenn ihre Elemente in unterschiedlicher Reihenfolge vorliegen. Es ist nicht schwer, aber es dauert einige Zeit.
In PHP gibt es viele einfache Methoden, um Arrays zu vergleichen, um festzustellen, ob sie gleich sind. Im Folgenden stellen wir einige häufig verwendete Methoden vor. Die Funktion
array_diff() vergleicht zwei Arrays und gibt Elemente zurück, die im ersten Array, aber nicht im zweiten Array vorhanden sind. Wenn die beiden Arrays genau gleich sind, wird ein leeres Array zurückgegeben.
Das Beispiel sieht wie folgt aus:
$array1 = array('a', 'b', 'c'); $array2 = array('a', 'b', 'd'); $res = array_diff($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Der obige Code gibt „Die beiden Arrays sind nicht gleich“ aus. Dies liegt daran, dass das „c“-Element im Array $array1 in $array2 nicht vorhanden ist. Die Funktion
array_diff_assoc() vergleicht zwei Arrays und gibt Elemente zurück, die im ersten Array, aber nicht im zweiten Array vorhanden sind, und vergleicht auch die Schlüssel dieser Elemente.
Das Beispiel sieht wie folgt aus:
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry'); $res = array_diff_assoc($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Der obige Code gibt „Die beiden Arrays sind nicht gleich“ aus. Dies liegt daran, dass das „banana“-Element im Array $array1 in $array2 nicht existiert und der Schlüssel „b“ ebenfalls anders ist. Die Funktion
array_diff_key() vergleicht zwei Arrays und gibt die Schlüssel von Elementen zurück, die im ersten Array, aber nicht im zweiten Array vorhanden sind. Der Unterschied zu array_diff() besteht darin, dass array_diff_key() nur Array-Schlüssel vergleicht, nicht die den Schlüsseln entsprechenden Werte.
Das Beispiel sieht wie folgt aus:
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'd' => 'mango'); $res = array_diff_key($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Der obige Code gibt „Die beiden Arrays sind nicht gleich“ aus. Dies liegt daran, dass der Schlüssel „c“ im Array $array1 in $array2 nicht vorhanden ist und der Schlüssel „d“ ebenfalls anders ist. Die Funktion
array_uintersect_assoc() vergleicht zwei Arrays und gibt die Elemente zurück, die in beiden Arrays vorhanden sind, und vergleicht auch die Schlüssel dieser Elemente. Entspricht array_diff_assoc().
Das Beispiel sieht wie folgt aus:
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry'); function compare($a, $b) { if ($a === $b) { return 0; } return ($a < $b) ? -1 : 1; } $res = array_uintersect_assoc($array1, $array2, 'compare'); if (count($res) === count($array1) && count($res) === count($array2)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Der obige Code gibt „Die beiden Arrays sind nicht gleich“ aus. Dies liegt daran, dass der Schlüssel „b“ im Array $array2 einem anderen Wert entspricht.
Die oben genannten Funktionen sind alle in PHP integrierte Funktionen und können leicht verglichen werden. Es ist jedoch zu beachten, dass beim Vergleich von Arrays die Elementtypen standardmäßig nicht verglichen werden. Wenn Sie die Typen von Elementen vergleichen müssen, können Sie Funktionen mit benutzerdefinierten Rückrufen wie array_diff_uassoc() verwenden und die Typvergleichsmethode in der benutzerdefinierten Vergleichsfunktion angeben.
Der Vergleich, ob Arrays in PHP gleich sind, ist kein kompliziertes Problem. Je nach Bedarf können unterschiedliche Methoden gewählt werden.
Das obige ist der detaillierte Inhalt vonPHP vergleicht Arrays, um festzustellen, ob sie gleich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!