(PHP 5 >= 5.1.0, PHP 7)
array_diff_ukey — Calcula la diferencia entre arrays usando una función de devolución de llamada en las keys para comparación
$array1
, array $array2
[, array $...
], callable $key_compare_func
) : array
Compara las keys del array1
contra las keys
del array2
y retorna la diferencia.
Esta función es como array_diff() excepto que
la comparación se hace en las keys en lugar de los valores.
A diferencia de array_diff_key() una función de devolución de llamada suministrada por el usuario se utiliza para la comparación de los índices, no una función interna.
array1
Array a comparar
array2
Un array contra el cual comparar
...
Más arrays contra los cuales comparar
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. Observe que antes de PHP 7.0.0 este entero debía estar en el rango de -2147483648 a 2147483647.
Retorna un array conteniendo todas las entradas del
array1
que no están presentes en ninguna de los otros array.
Ejemplo #1 Ejemplo de array_diff_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_diff_ukey($array1, $array2, 'key_compare_func'));
?>
El resultado del ejemplo sería:
array(2) { ["red"]=> int(2) ["purple"]=> int(4) }
Nota:
Esta función sólo comprueba una dimensión de un array n-dimensional. Por supuesto, se pueden comprobar dimensiones más profundas mediante array_diff_ukey($array1[0], $array2[0], 'callback_func');.