(PHP 5 >= 5.1.0, PHP 7)
array_diff_ukey — Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
$array1
, array $array2
[, array $...
], callable $key_compare_func
) : 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.
Anders als von array_diff_key() wird eine vom Benutzer definierte Callbackfunktion für die Vergleiche anstelle einer eingebauten Funktion verwendet.
array1Das Array, das verglichen werden soll
array2Das Array, mit dem verglichen werden soll
...Weitere Arrays, mit denen verglichen werden soll
key_compare_funcDie Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.
Gibt ein Array mit allen Einträgen von
array1 zurück, die in keinem der
anderen Arrays vorhanden sind.
Beispiel #1 array_diff_ukey()-Beispiel
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis' => 8);
var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(2) {
["rot"]=>
int(2)
["violett"]=>
int(4)
}
Hinweis:
Diese Funktion prüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie z.B.
array_diff_ukey($array1[0], $array2[0], 'callback_func');benutzen.