(PHP 5)
array_diff_uassoc — Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario
Compara matriz1 contra matriz2 y devuelve la diferencia. En contraste con array_diff(), las claves de las matrices son usadas en la comparación.
A diferencia de array_diff_assoc(), una función de llamada de retorno creada por el usuario es usada para la comparación de índices, no una función interna.
La matriz a comparar
Una matriz contra la que se realiza la comparación
Más matrices a incluir en la comparación
Función tipo callback a usar. La función de llamada de retorno debe devolver un entero menor, igual o mayor a cero si el primer argumento es considerado respectivamente como menor, igual o mayor que el segundo.
Devuelve un valor tipo array que contiene todas las entradas de matriz1 que no están presentes en ninguna de las otras matrices.
Example#1 Ejemplo de array_diff_uassoc()
La pareja "a" => "green" está presente en ambas matrices y por lo tanto no es incluida en la salida de la función. En contraste, la pareja 0 => "red" está en la salida porque en el segundo argumento "red" tiene una clave que es 1.
<?php
function func_comparacion_claves($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$matriz1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$matriz2 = array("a" => "green", "yellow", "red");
$resultado = array_diff_uassoc($matriz1, $matriz2, "func_comparacion_claves");
print_r($resultado);
?>
El resultado del ejemplo seria:
Array ( [b] => brown [c] => blue [0] => red )
La igualdad de 2 índices es chequeada por la función de llamada de retorno entregada por el usuario.
Note: Esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto que puede analizar dimensiones más profundas usando, por ejemplo, array_diff_uassoc($matriz1[0], $matriz2[0], "func_comparacion_claves");.