array_uintersect_assoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_assoc Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion

Beschreibung

array_uintersect_assoc(array $array, array ...$arrays, callable $value_compare_func): array

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.

Parameter-Liste

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.

callback(mixed $a, mixed $b): int
Achtung

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.

Achtung

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;
};
?>

Rückgabewerte

Gibt ein Array mit allen Werten aus array zurück, die ebenfalls in allen anderen Argumenten enthalten sind.

Beispiele

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
)

Siehe auch

  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top