(PHP 5, PHP 7, PHP 8)
array_uintersect_assoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion.
Beachten Sie, dass anders als bei array_uintersect() die Schlüssel zum Vergleich herangezogen werden. Die Daten werden durch eine Callbackfunktion verglichen.
array
Das erste Array.
arrays
Arrays zum Vergleichen.
value_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.
Das Sortier-Callback muss alle Werte aus allen Arrays in beliebiger Reihenfolge verarbeiten, unabhängig von der Reihenfolge, in der sie ursprünglich bereitgestellt wurden. Das liegt daran, dass jedes einzelne Array zuerst sortiert wird, bevor es mit anderen Arrays verglichen wird. Zum Beispiel:
<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 und $item2 können "string", 1 oder ["value" => 1] sein.
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>
Gibt ein Array mit allen Werten aus array
zurück, die
ebenfalls in allen anderen Argumenten enthalten sind.
Beispiel #1 array_uintersect_assoc() Beispiel
<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");
print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [a] => grün )