(PHP 5 >= 5.1.0)
array_diff_ukey — Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
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.
Das Array, das verglichen werden soll
Das Array, mit dem verglichen werden soll
Weitere Arrays, mit denen verglichen werden soll
Die zu benutzende Callback-Funktion. Die Callbackfunktion muss einen Integer kleiner als, genau gleich oder größer als Null zurückgeben, wenn das erste Argument entsprechend als kleiner, gleich oder größer als das zweite betrachtet wird.
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.
Note, also that when you are using a callback function you can use the text-placeholders as this function relies on the retval of the function you give.
So, instead of 1,0,-1 you can use TRUE and FALSE if using only two options.
Just thought it may help you