Função array_intersect_uassoc() do PHP
Exemplo
Comparar os nomes e valores das chaves de dois arrays (usando uma função personalizada do usuário para comparar os nomes das chaves) e retornar a interseção:
<?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_intersect_uassoc($a1, $a2, "myfunction"); print_r($result); ?>
Definição e uso
A função array_intersect_uassoc() é usada para comparar os nomes e valores das chaves de dois (ou mais) arrays e retornar a interseção.
Notas:A função usa uma função personalizada do usuário para comparar os nomes das chaves!
Esta função compara os nomes e valores das chaves de duas (ou mais) arrays e retorna um array de interseção que inclui todos os elementos presentes em todos os arrays comparados (array1)e também em qualquer outro array de parâmetros (array2 ou array3 etc.) os nomes de chave e valores.
Descrição
A função array_intersect_uassoc() usa uma função de callback personalizada do usuário para calcular a interseção dos arrays, comparando os índices com a função de callback.
array_intersect_uassoc() retorna um array que contém todos os valores array1 também aparecem em todos os outros arrays de parâmetros. Os nomes das chaves no array retornado permanecem inalterados.
Atenção, ao contrário de array_intersect(), além de comparar os valores das chaves, também compara os nomes das chaves.
Esta comparação é feita através de uma função de callback fornecida pelo usuário. A função possui dois parâmetros, nomeados como os nomes das chaves a serem comparadas. Se o primeiro parâmetro for menor que o segundo, a função deve retornar um número negativo, se os parâmetros forem iguais, deve retornar 0, e se o primeiro parâmetro for maior que o segundo, deve retornar um número positivo.
sintaxe
array_intersect_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 comparação com o primeiro array. |
myfunction | Obrigatório. Define a string da função callable para comparação. 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. |
Detalhes Técnicos
Retorno: | Retorna o array de interseção, que inclui todos os arrays comparados (array1)e também em qualquer outro array de parâmetros (array2 ou array3 etc.) os nomes de chave e valores. |
Versão PHP: | 5+ |
Mais Exemplos
Exemplo 1
Comparar os nomes de chave e valores de três arrays (usando função de comparação personalizada do usuário) e retornar a interseção:
<?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_intersect_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>