(PHP 5 >= 5.1.0, PHP 7, PHP 8)
array_intersect_ukey — Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches
array_intersect_ukey() gibt ein Array zurück, welches
alle Werte von array
enthält, die Schlüssel
besitzen, die in allen anderen Argumenten enthalten sind.
array
Eingabe-Array für den Vergleich der Arrays.
arrays
Arrays zum Vergleichen von Schlüsseln.
key_compare_func
Die 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.
Wenn die Vergleichsfunktion nicht-ganzzahlige Werte
zurückgibt, z. B. vom Typ float, wird der Rückgabewert des
Callbacks intern in den Typ int umgewandelt. Werte wie
0.99
und 0.1
werden also beide in
einen Integer-Wert von 0
umgewandelt, wodurch diese Werte
als gleichwertig eingestuft werden.
Gibt alle Werte von array
zurück, deren
Schlüssel in allen Argumenten existieren.
Beispiel #1 array_intersect_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_intersect_ukey($array1, $array2, 'key_compare_func'));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(2) { ["blau"]=> int(1) ["grün"]=> int(3) }
In unserem Beispiel sehen Sie, dass nur die Schlüssel 'blau'
und 'grün'
in beiden Arrays vorhanden sind und daher
zurückgegeben werden. Beachten Sie auch, dass die Werte zu den Schlüsseln
'blau'
und 'grün'
sich in beiden
Arrays voneinander unterscheiden. Eine Übereinstimmung wird dennoch
festgestellt, da nur die Schlüssel überprüft werden. Die zurückgegebenen
Werte sind diejenigen aus array
.