Funktion array_uintersect
Die Funktion array_uintersect berechnet die Schnittmenge von Arrays unter Verwendung einer Callback-Funktion zum Vergleich der Werte. Sie gibt ein Array zurück, das alle Elemente aus dem ersten Array enthält, die in allen anderen Arrays vorhanden sind. Der Wertvergleich erfolgt über eine benutzerdefinierte Callback-Funktion.
Syntax
array_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;
Beispiel
Lassen Sie uns die Schnittmenge zweier Arrays finden, indem wir ihre Werte mit einer Callback-Funktion vergleichen:
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 4, 6, 8, 10];
$res = array_uintersect($array1, $array2, function($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
print_r($res);
?>
Ergebnis der Codeausführung:
[2, 4]
Beispiel
Vergleich von String-Arrays mit einer benutzerdefinierten Funktion:
<?php
$array1 = ['a', 'b', 'c', 'd', 'e'];
$array2 = ['b', 'd', 'f', 'h', 'j'];
$res = array_uintersect($array1, $array2, function($a, $b) {
return strcmp($a, $b);
});
print_r($res);
?>
Ergebnis der Codeausführung:
['b', 'd']
Siehe auch
-
die Funktion
array_intersect,
die die Schnittmenge von Arrays berechnet -
die Funktion
array_intersect_assoc,
die die Schnittmenge von Arrays mit zusätzlicher Indexprüfung berechnet -
die Funktion
array_uintersect_assoc,
die die Schnittmenge von Arrays mit zusätzlicher Indexprüfung unter Verwendung einer Callback-Funktion berechnet