array_uintersect_assoc
(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
Descrição
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.
Parâmetros
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.
CautionRetornar 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
e0.1
serão convertidos para o valor inteiro0
, o que comparará esses valores como iguais.CautionA 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; }; ?>
Valor Retornado
Retorna um array contendo todos os valores de
array
que estão presentes em todos os argumentos.
Exemplos
Example #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 )
Veja Também
- array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
- array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
- array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
- array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas