Função array_diff_uassoc() do PHP

Exemplo

Comparar os nomes e valores das chaves de dois arrays (usando uma função personalizada 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"=>"vermelho","b"=>"verde","c"=>"azul");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);
?>

Executar Exemplo

Definição e uso

A função array_diff_uassoc() é usada para comparar os nomes e valores das chaves de dois (ou mais) arrays e retorna a diferença.

Notas:Esta função usa uma função personalizada para comparar nomes de chaves!

Esta função compara os nomes e valores das chaves de dois (ou mais) arrays e retorna um array de diferença que inclui todos os elementos que estãoarray1mas não está presente em nenhum outro array de parâmetros (array2 ou array3 etc.) as chaves e valores.

Sintaxe

array_diff_uassoc(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. Outros arrays para comparar com o primeiro array.
myfunction Obrigatório. Define a string da função de comparação que pode ser chamada. 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

A função array_diff_uassoc() usa uma função de callback personalizada (callback) para verificar índices para calcular a diferença entre dois ou mais arrays. Retorna um array que inclui todos os elementos que estão array1 mas não presente em nenhum outro array de parâmetros.

Atenção, ao contrário da função array_diff(), também são comparados os nomes das chaves.

O parâmetro myfunction é uma função personalizada do usuário usada para comparar dois arrays, que deve ter dois parâmetros - os nomes das chaves a serem comparadas. Portanto, o comportamento é exatamente o oposto da função array_diff_assoc(), que usa uma função interna para comparação.

Os nomes das chaves no array retornado permanecem inalterados.

Detalhes Técnicos

Retorno: retorna o array de diferença, que inclui todos os valores que estão nos arrays comparados (array1mas não está presente em nenhum outro array de parâmetros (array2 ou array3 etc.) as chaves e valores.
Versão PHP: 5+

Mais Exemplos

Exemplo 1

Comparar os nomes e valores das chaves de três arrays (usar função personalizada do usuário para comparar os nomes das chaves) e retornar a diferença:

<?php
function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
$a1=array("a"=>"vermelho","b"=>"verde","c"=>"azul");
$a2=array("a"=>"vermelho","b"=>"verde","d"=>"azul");
$a3=array("e"=>"amarelo","a"=>"vermelho","d"=>"azul");
$result=array_diff_uassoc($a1,$a2,$a3,"myfunction");
print_r($result);
?>

Executar Exemplo