array_uintersect_uassoc
(PHP 5, PHP 7, PHP 8)
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
Descrição
array
$array1
,array
...$arrays
,callable
$value_compare_func
,callable
$key_compare_func
): array
Computa a interseção de arrays com checagem adicional de índice, compara dados e índices utilizando funções de callback separadas.
Parâmetros
array1
-
Primeiro array.
arrays
-
Outros arrays.
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; }; ?>
key_compare_func
-
Função para comparação das chaves (índices).
Valor Retornado
Retorna um array contendo todos os valores de
array1
que estão presentes em todos os argumentos.
Exemplos
Example #1 Exemplo de array_uintersect_uassoc()
<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");
print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>
O exemplo acima produzirá:
Array ( [a] => verde [b] => marrom )
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_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback