(PHP 5 >= 5.1.0, PHP 7)
array_diff_key — Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
$array1
, array $array2
[, array $...
] ) : array
Vergleicht die Schlüssel von array1
mit
den Schlüsseln von array2
und gibt die
Unterschiede zurück. Diese Funktion arbeitet wie
array_diff() mit dem Unterschied, dass der Vergleich
mit den Schlüsseln statt den Werten arbeitet.
array1
Das Array, das verglichen werden soll
array2
Das Array, mit dem verglichen werden soll
...
Weitere Arrays, mit denen verglichen werden soll
Gibt ein Array mit allen Einträgen von
array1
zurück, deren Schlüssel in keinem
der anderen Arrays vorhanden sind.
Beispiel #1 array_diff_key()-Beispiel
Die beiden Schlüssel des Schlüssel => Wert-Paares werden als gleich erachtet, genau dann wenn (string) $Schlüssel1 === (string) $Schlüssel2 . Anders ausgedrückt findet eine strikte Prüfung statt, in der die String-Repräsentationen gleich sein müssen.
<?php
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'gelb' => 7, 'türkis' => 8);
var_dump(array_diff_key($array1, $array2));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(3) { ["blau"]=> int(1) ["rot"]=> int(2) ["violett"]=> int(4) }
<?php
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'gelb' => 7, 'türkis' => 8);
$array3 = array('blau' => 6, 'gelb' => 7, 'blasslila' => 8);
var_dump(array_diff_key($array1, $array2, $array3));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(2) { ["rot"]=> int(2) ["violett"]=> int(4) }
Hinweis:
Diese Funktion überprüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich kann man tiefere Dimensionen überprüfen, indem man array_diff_key($array1[0], $array2[0]); verwendet.