Função array_diff_ukey() do PHP
Exemplo
Comparar os nomes das chaves de dois arrays (usando uma função personalizada do usuário para comparar nomes de chaves) e retornar a diferença:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"blue","b"=>"black","e"=>"blue"); $result=array_diff_ukey($a1,$a2,"myfunction"); print_r($result); ?>
Definição e Uso
A função array_diff_ukey() é usada para comparar os nomes das chaves de dois (ou mais) arrays e retorna a diferença.
Notas:Esta função usa uma função personalizada do usuário para comparar nomes de chaves!
Esta função compara os nomes das chaves de dois (ou mais) arrays e retorna um array de diferença que inclui todas as chaves nas arrays comparadas (array1)mas não está presente em nenhum outro array de parâmetros (array2 ou array3 etc.) os nomes das chaves.
Sintaxe
array_diff_ukey(array1,array2,array3...,myfunction);
Parâmetros | Descrição |
---|---|
array1 | Obrigatório. O primeiro array a ser comparado com outros arrays. |
array2 | Obrigatório. O array a ser comparado com o primeiro array. |
array3,... | Opcional. Outro array a ser comparado com o primeiro array. |
myfunction | Obrigatório. Define a string que representa a função de comparação chamável. Se o primeiro parâmetro for menor, igual ou maior que o segundo parâmetro, a função de comparação deve retornar um inteiro menor, igual ou maior que 0. |
Descrição
array_diff_ukey() retorna um array que inclui todas as chaves que aparecem array1 mas não aparecem em nenhum outro array de parâmetros. Note que a relação associativa é mantida. Diferente do array_diff(), a comparação é feita com base no nome da chave e não no valor.
A comparação é feita através de uma função de callback fornecida pelo usuário. Deve retornar um inteiro negativo, zero ou positivo, respectivamente, se o primeiro parâmetro for menor, igual ou maior que o segundo parâmetro.
Detalhes técnicos
Retorno: | Retorna um array de diferença que inclui todas as chaves dos arrays comparados (array1)mas não está presente em nenhum outro array de parâmetros (array2 ou array3 etc.) os nomes das chaves. |
Versão PHP: | 5.1+ |
Mais exemplos
Exemplo 1
Comparar os nomes das chaves de três arrays (usando função personalizada do usuário para comparar nomes de chaves) e retornar a diferença:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"black","b"=>"yellow","d"=>"brown"); $a3=array("e"=>"purple","f"=>"white","a"=>"gold"); $result=array_diff_ukey($a1,$a2,$a3,"myfunction"); print_r($result); ?>