Função PHP array_diff_uassoc ()
Definição e Uso
o array_diff_uassoc() função compara as chaves e os valores de dois (ou mais) arrays e retorna um array que contém as entradas de array1 que não estão presentes em nenhum dos outros arrays com o mesmo valor.
Esta função é diferente de array_diff() porque array_diff () compara os valores enquanto esta função compara as chaves e seus valores em outros arrays.
Esta função é diferente de array_diff_assoc() porque array_diff_assoc () usa algoritmo interno para comparar as chaves e seus valores, enquanto esta função usa uma função definida pelo usuário para comparar as chaves e seus valores.
Sintaxe
array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 | array1(Required) A matriz a partir da qual comparar |
2 | array2(Required) Este é um array a ser comparado com o primeiro array |
3 | array3(Optional) Uma matriz a ser comparada com a primeira matriz |
4 | key_compare_func(Required) É uma função de retorno de chamada usada para comparar as chaves. Esta função de retorno de chamada deve retornar um inteiro <, =,> que 0 se o primeiro argumento for considerado respectivamente <, =,> do que o segundo argumento. |
Valores Retornados
Esta função retorna um array contendo todas as entradas de array1, mas que não estão presentes em nenhum dos outros arrays.
Versão PHP
Esta função foi introduzida pela primeira vez no PHP versão 5.0.0.
Exemplo
Experimente o seguinte exemplo. Aqui, a função de comparação de chave retorna 0 se as chaves $ input1 forem iguais a qualquer outro array de entrada, caso contrário, retorna 1 se for maior ou -1 se for menor.
Ao comparar as chaves usando a função definida, temos as chaves "a" em ambas as matrizes, portanto, ela não virá na saída. As próximas teclas "b" e "c" não estão na segunda matriz, portanto, irão para a saída. O par adicional 0 => "vermelho" está na saída porque no segundo argumento "vermelho" tem a chave que é 1 -
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$input2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($input1, $input2, "key_compare_func");
print_r($result);
?>
Isso produzirá o seguinte resultado -
Array
(
[b] => brown
[c] => blue
[0] => red
)
Exemplo
Experimente o seguinte exemplo. Desta vez, "vermelho" não estará na saída porque agora as duas chaves são iguais, o que é 0.
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$input2 = array("a" => "green", "c" => "yellow", "red");
$result = array_diff_uassoc($input1, $input2, "key_compare_func");
print_r($result);
?>
Isso produzirá o seguinte resultado -
Array
(
[b] => brown
[c] => blue
)