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);
?>

Executar exemplo

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);
?>

Executar exemplo