Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

array_diff_assoc

Array-Funktionen

    Befehl:
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )


    Parameter-Liste:
NameBeschreibung
array1Das Array, das verglichen werden soll
array2Das 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.


    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
)

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
)

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.
Array-Funktionen