(PHP 5 >= 5.1.0)
array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação
array_intersect_ukey() retorna um array contendo todos os valores de array1 que têm as mesmas chaves presentes em todos os argumentos.
Esta comparação é feita por uma função de callback fornecida pelo usuário. Ela deve retornar um inteiro menor que, igual a, ou maior que zero se o primeiro argumento é considerado, respectivamente, menor que, igual a, ou maior que o segundo.
Array inicial para comparação dos arrays.
Primeiro array para comparar as chaves.
Lista variável de argumentos para comparar as chaves.
Função de callback fornecida pelo usuário para comparação.
Retorna os valores de array1 cujas chaves existem em todos os argumentos.
Exemplo #1 Exemplo de array_intersect_ukey()
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('azul' => 1, 'vermelho' => 2, 'verde' => 3, 'roxo' => 4);
$array2 = array('verde' => 5, 'azul' => 6, 'amarelo' => 7, 'rosa' => 8);
var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>
O exemplo acima irá imprimir:
array(2) { ["azul"]=> int(1) ["verde"]=> int(3) }
Em nosso exemplo você vê que somente as chaves 'azul' e 'verde' estão presentes em ambos os arrays e assim retornadas. Também note que os valores para as chaves 'azul' e 'verde' diferem entre os dois arrays. Uma combinação ainda ocorre porque somente as chaves são checadas. Os valores retornados são os do array1.