(PHP 5, PHP 7, PHP 8)
array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback.
Note que as chaves são utilizadas na comparação, diferente de array_uintersect(). Os dados são comparados utilizando funções de callback.
array
Primeiro array.
arrays
Arrays para comparar.
value_compare_func
A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.
Retornar valores não inteiros da função de
comparação, como float, resultará em uma conversão interna
do valor retornado da função callback para int. Portanto, valores como
0.99
e 0.1
serão convertidos para o
valor inteiro 0
, o que comparará esses valores como iguais.
A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:
<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$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;
};
?>
Retorna um array contendo todos os valores de
array
que estão presentes em todos os argumentos.
Exemplo #1 Exemplo de array_uintersect_assoc()
<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");
print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>
O exemplo acima produzirá:
Array ( [a] => verde )