(PHP 5 >= 5.1.0, PHP 7)
array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação
$array1
, array $array2
[, array $...
], callback $key_compare_func
)
array_intersect_ukey() retorna um array
contendo todos os valores de array1
que têm as mesmas chaves presentes em todos os argumentos.
array1
Array inicial para comparação dos arrays.
array2
Primeiro array para comparar as chaves.
array
Lista variável de argumentos para comparar as chaves.
key_compare_func
A função de comparação precisa retornar um inteiro menor, igual, ou maior que zero caso o primeiro argumento seja considerado respectivamente maior, igual ou maior que o segundo. Note que antes do PHP 7.0.0 este inteiro tinha de estar no intervalo de -2147483648 a 2147483647.
Retorna os valores de array1
cujas chaves existem
em todos os argumentos.
Exemplo #1 Exemplo da função 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
.