PHP
Referenzliste
array_diff_assoc
Array-Funktionen
Befehl:
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
Parameter-Liste:
Beschreibung | |
---|---|
Das Array, das verglichen werden soll | |
Das Array, mit dem verglichen werden soll. | |
... | Weitere Arrays, mit denen verglichen werden soll. |
Rückgabewerte:
Gibt ein Array zurück, das alle Werte aus array1 enthält, die in keinem der anderen Arrays vorhanden ist.
Beschreibung:
Mit array_diff_assoc() können Sie zwei oder mehrere Arrays auf deren Inhalt vergleichen lassen und erhalten dann ein neues Array mit den Unterschieden zwischen den zu vergleichenden Arrays. Das Besondere an dieser Funktion ist, dass nicht nur die Werte gleich sein müssen, sondern auch deren Schlüssel!
Weiterhin ist zu beachten, das die Funktion nur eindimensionale Arrays vergleichen kann. Mehrdimensionale Arrays müssen daher explizit angegeben werden in der Form: array_diff_assoc( $array_1[0], $array_2[0] );
Als Rückgabewert erhalten Sie ein Array, das alle Werte aus $array1 enthält, die in keinem der anderen Arrays vorkommen.
Parameter der Funktion:
$array1
Ein Array das verglichen werden soll.
$array2
Ein Array mit dem verglichen werden soll.
$array x
Weitere Arrays mit denen verglichen werden soll.
Weiterhin ist zu beachten, das die Funktion nur eindimensionale Arrays vergleichen kann. Mehrdimensionale Arrays müssen daher explizit angegeben werden in der Form: array_diff_assoc( $array_1[0], $array_2[0] );
Als Rückgabewert erhalten Sie ein Array, das alle Werte aus $array1 enthält, die in keinem der anderen Arrays vorkommen.
Parameter der Funktion:
$array1
Ein Array das verglichen werden soll.
$array2
Ein Array mit dem verglichen werden soll.
$array x
Weitere Arrays mit denen verglichen werden soll.
Aktiv in Version:
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
Hinweis:
Hinweis:
Beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays prüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie z.B. array_diff($array1[0], $array2[0]); benutzen.
Siehe auch:
Ermittelt die Unterschiede zwischen Arrays
Ermittelt die Schnittmenge von Arrays
Ermittelt die Schnittmenge von Arrays mit Indexprüfung
array_diff_assoc() - Beispiel 1:
Eingabe:
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); ?>
Ausgabe:
Array
(
[b] => braun
[c] => blau
[0] => rot
)
(
[b] => braun
[c] => blau
[0] => rot
)
Beschreibung:
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.
array_diff_assoc() - Beispiel 2:
Eingabe:
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 $array_1 = array("a" => "Haus", "b" => "Tor", "c" => "Eingang", "Wiese"); $array_2 = array("a" => "Haus", "Zaun", "Wiese"); echo 'Ausgabe $array_1:' . "\n----------"; print_r( $array_1 ); echo 'Ausgabe $array_2:' . "\n----------"; print_r( $array_2 ); echo 'Ergebnis:' . "\n----------"; $result = array_diff_assoc( $array_1, $array_2 ); print_r( $result ); ?>
Ausgabe:
Ausgabe $array_1:
----------
Array
(
[a] => Haus
[b] => Tor
[c] => Eingang
[0] => Wiese
)
Ausgabe $array_2:
----------
Array
(
[a] => Haus
[0] => Zaun
[1] => Wiese
)
Ergebnis:
----------
Array
(
[b] => Tor
[c] => Eingang
[0] => Wiese
)
----------
Array
(
[a] => Haus
[b] => Tor
[c] => Eingang
[0] => Wiese
)
Ausgabe $array_2:
----------
Array
(
[a] => Haus
[0] => Zaun
[1] => Wiese
)
Ergebnis:
----------
Array
(
[b] => Tor
[c] => Eingang
[0] => Wiese
)
Beschreibung:
An diesem Beispiel k�nnen Sie sehen, dass der Inhalt "[a] => Haus" in beiden Arrays identisch vorkommt, also als Schl�ssel (a) und als Wert(Haus). Somit taucht dieses Paar auch nicht in dem Ergebnis-Array auf.
Bei dem Arrayinhalt "Wiese" verh�lt es sich anders. Der Wert "Wiese" kommt zwar auch in beiden Arrays vor, allerdings im Array 1 mit dem Schl�ssel "0" und im Array 2 mit dem Schl�ssel "1". Daher finden Sie im Ergebnis-Array auch den Wert "Wiese" mit dem Schl�ssel "0" von Array 1.
Bei dem Arrayinhalt "Wiese" verh�lt es sich anders. Der Wert "Wiese" kommt zwar auch in beiden Arrays vor, allerdings im Array 1 mit dem Schl�ssel "0" und im Array 2 mit dem Schl�ssel "1". Daher finden Sie im Ergebnis-Array auch den Wert "Wiese" mit dem Schl�ssel "0" von Array 1.
Array-Funktionen