(PHP 5)
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
Compara array1 contra array2 y retorna la diferencia. A diferencia de array_diff() la keys del array se utilizan en la comparación.
A diferencia de array_diff_assoc() 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.
Array a comparar
Un array contra el cual comparar
Más arrays contra los cuales comparar
Función callback a usar. La función de devolución de llamada debe retornar un entero menor, igual o mayor que cero si el primer argumento se considera que es, respectivamente, menor, igual o mayor que el segundo.
Retorna un array conteniendo todas las entradas del array1 que no están presentes en ninguno de los otros arrays.
Example #1 Ejemplo de array_diff_uassoc()
El par "a" => "green" está presente en ambos arrays y por lo tanto no está en la salida de la función. A diferencia de ésto, el par 0 => "red" está en la salida ya que en el segundo argumento "red" tiene una key que es 1.
<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
El resultado del ejemplo sería:
Array ( [b] => brown [c] => blue [0] => red )
La igualdad de 2 índices es chequeada por la función de devolución de llamada suministrada por el usuario.
Note:
Esta función sólo comprueba una dimensión de un array n-dimensional. Por supuesto, se pueden comprobar dimensiones más profundas mediante, por ejemplo, array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.