Função array_uintersect
A função array_uintersect calcula a interseção de arrays, usando uma função de callback para comparação de valores. Ela retorna um array contendo todos os elementos do primeiro array que estão presentes em todos os outros arrays. A comparação de valores ocorre através de uma função de callback definida pelo usuário.
Sintaxe
array_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;
Exemplo
Vamos encontrar a interseção de dois arrays, comparando seus valores usando uma função de callback:
<?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);
?>
Resultado da execução do código:
[2, 4]
Exemplo
Comparação de arrays de strings usando uma função personalizada:
<?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);
?>
Resultado da execução do código:
['b', 'd']
Veja também
-
a função
array_intersect,
que calcula a interseção de arrays -
a função
array_intersect_assoc,
que calcula a interseção de arrays com verificação adicional de índice -
a função
array_uintersect_assoc,
que calcula a interseção de arrays com verificação adicional de índice, usando uma função de callback