(PHP 4 >= 4.3.0, PHP 5, PHP 7)
array_diff_assoc — Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
$array1
, array $array2
[, array $...
] ) : array
Vergleicht array1
mit array2
und
gibt den Unterschied zurück. Im Gegensatz zu array_diff()
werden die Schlüssel des Arrays ebenfalls beim Vergleich herangezogen.
array1
Das Array, das verglichen werden soll
array2
Das Array, mit dem verglichen werden soll
...
Weitere Arrays, mit denen vergleichen werden soll
Gibt ein Array zurück, das alle Werte aus
array1
enthält, die in keinem der
anderen Arrays vorhanden ist.
Beispiel #1 array_diff_assoc()-Beispiel
In diesem Beispiel sieht man, dass das "a" => "gruen"-Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der Funktion auftaucht. Andererseits ist das Paar 0 => "rot" in der Ausgabe, weil "red" im zweiten Array den Wert 1 enthält.
<?php
$array1 = array("a" => "gruen", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "gruen", "gelb", "rot");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [b] => braun [c] => blau [0] => rot )
Beispiel #2 array_diff_assoc()-Beispiel
Zwei Werte von Schlüssel => Wert-Paaren werden nur dann als gleich betrachtet, wenn (string) $elem1 === (string) $elem2 gilt. Anders ausgedrückt findet eine strikte Prüfung statt, in der die String-Repräsentationen gleich sein müssen.
<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [0] => 0 [1] => 1 )
Hinweis: Diese Funktion überprüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich kann man tiefere Dimensionen überprüfen, indem man zum Beispiel array_diff_assoc($array1[0], $array2[0]); verwendet.
Hinweis: Stellen Sie sicher, dass Sie die Parameter in der korrekten Reihenfolge übergeben, wenn Sie mit ähnlichen Arrays mit mehr Schlüsseln vergleichen. Das neue Array sollte das erste in der Liste sein.