Using PHP Version 5.2.9-2 on Win 32
For those wondering what happens with numeric keys, here's a short example that might save you time :
<?php
$a=array(1=>'a',2=>'b',3=>'c');
$b=array(2=>'z',3=>'c',4=>'d');
$c=array_intersect_key($a,$b);
print_r($c);
?>
Will output
Array
(
[2] => b
[3] => c
)
It works fine, if values are different, the first array's ones are retained.
array_intersect_ukey
(PHP 5 >= 5.1.0)
array_intersect_ukey — Calcula la intersección de arrays usando una función de devolución de llamada en las keys para la comparación
Descripción
$array1
, array $array2
[, array $...
], callable $key_compare_func
)
array_intersect_ukey() retorna un array
que contiene todos los valores de array1
los cuales tengan keys que estén presentes en todos los argumentos.
Parámetros
-
array1 -
Array inicial para la comparación de las arrays.
-
array2 -
Primer array contra el cual comparar las keys.
-
array -
Una lista variable de argumentos de array para comparar keys.
-
key_compare_func -
La función de comparación debe devolver un entero menor, igual o mayor que cero si el primer argumento se considera que sea respectivamente menor, igual o mayor que el segundo.
Valores devueltos
Retorna los valores de array1 cuyas keys existen
en todos los argumentos.
Ejemplos
Ejemplo #1 Ejemplo 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('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>
El resultado del ejemplo sería:
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
En el ejemplo se puede ver que sólo las keys 'blue'
y 'green' están presentes en ambos arrays y por lo tanto
son retornadas. Nótese también que los valores para las keys
'blue' y 'green' difieren entre
los dos arrays. Sigue ocurriendo emparejamiento porque sólo las keys son verificadas.
Los valores retornados son aquellos del array1.
Ver también
- array_diff() - Calcula la diferencia entre arrays
- array_udiff() - Computa la diferencia entre arrays, usando una llamada de retorno para la comparación de datos
- array_diff_assoc() - Calcula la diferencia entre arrays con un chequeo adicional de índices
- array_diff_uassoc() - Calcula la diferencia entre arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada suministrada por el usuario
- array_udiff_assoc() - Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno
- array_udiff_uassoc() - Computa la diferencia entre arrays con una verificación de índices adicional, compara la información y los índices mediante una función de llamada de retorno
- array_diff_key() - Calcula la diferencia entre arrays usando las keys para la comparación
- array_diff_ukey() - Calcula la diferencia entre arrays usando una función de devolución de llamada en las keys para comparación
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de arrays con un chequeo adicional de índices
- array_intersect_uassoc() - Calcula la intersección de arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada
- array_intersect_key() - Calcula la intersección de arrays usando las keys para la comparación
