Functie array_uintersect
De functie array_uintersect berekent de doorsnede van arrays door een callback-functie te gebruiken voor het vergelijken van waarden. Het retourneert een array die alle elementen uit de eerste array bevat die aanwezig zijn in alle andere arrays. De vergelijking van waarden gebeurt via een door de gebruiker gedefinieerde callback-functie.
Syntaxis
array_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;
Voorbeeld
Laten we de doorsnede van twee arrays vinden door hun waarden te vergelijken met behulp van een callback-functie:
<?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);
?>
Resultaat van de code-uitvoering:
[2, 4]
Voorbeeld
Vergelijking van arrays met strings met behulp van een aangepaste functie:
<?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);
?>
Resultaat van de code-uitvoering:
['b', 'd']
Zie ook
-
de functie
array_intersect,
die de doorsnede van arrays berekent -
de functie
array_intersect_assoc,
die de doorsnede van arrays berekent met aanvullende indexcontrole -
de functie
array_uintersect_assoc,
die de doorsnede van arrays berekent met aanvullende indexcontrole, gebruikmakend van een callback-functie