array_diff_assoc
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
array_diff_assoc — Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
Beschreibung
$array
, array ...$arrays
): array
Vergleicht array
mit arrays
und
gibt den Unterschied zurück. Im Gegensatz zu array_diff()
werden die Schlüssel des Arrays ebenfalls beim Vergleich herangezogen.
Parameter-Liste
-
array
-
Das Array, das verglichen werden soll
-
arrays
-
Arrays zum Vergleichen
Rückgabewerte
Gibt ein Array zurück, das alle Werte aus
array
enthält, die in keinem der
anderen Arrays vorhanden ist.
Changelog
Version | Beschreibung |
---|---|
8.0.0 | Diese Funktion kann jetzt mit nur einem Parameter aufgerufen werden. Zuvor waren mindestens zwei Parameter erforderlich. |
Beispiele
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
"rot"
im zweiten Array den Schlüssel
1
hat.
<?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 )
Anmerkungen
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.
Siehe auch
- array_diff() - Ermittelt die Unterschiede zwischen Arrays
- array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
- array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
- array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
- array_intersect() - Ermittelt die Schnittmenge von Arrays
- array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung