(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
$array1
,...$arrays
,$value_compare_func
,$key_compare_func
Computa a interseção de arrays com checagem adicional de índice, compara dados e índices utilizando funções de callback separadas.
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.
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;
};
?>
key_compare_func
Função para comparação das chaves (índices).
Retorna um array contendo todos os valores de array1
que estão presentes em todos os argumentos.
Exemplo #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 )