array_udiff_assoc() devuelve un array
que contiene todos los valores de matriz1 que
no están presentes en ninguno de los otros argumentos_ Note que
las claves son usadas en la comparación, a diferencia
de array_diff()
y array_udiff()_ La comparación entre datos
de las matrices es realizada usando una llamada de retorno
especificada por el usuario_ En este sentido, el comportamiento de
ésta función es opuesto al
de array_diff_assoc(), la cual usa una
función interna para la comparación_
Ejemplo 1_ Ejemplo de array_udiff_assoc()
<?php
class cr {
private $miembro_privado;
function cr($val) {
$this_>miembro_privado = $val;
}
static function func_comp_cr($a, $b) {
if ($a_>miembro_privado === $b_>miembro_privado) return 0;
return ($a_>miembro_privado > $b_>miembro_privado)? 1:_1;
}
}
$a = array("0_1" => new cr(9), "0_5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(_15),);
$b = array("0_2" => new cr(9), "0_5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(_15),);
$resultado = array_udiff_assoc($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>
En nuestro ejemplo anterior puede observar la pareja "1"
=> new cr(4) presente en ambas matrices y por lo tanto no
hace parte de la salida de la función_
Para la comparación es usada la llamada de retorno entregada por el
usuario_ Ésta debe devolver un entero menor que, igual, o mayor que
cero si el primer argumento es considerado como menor, igual, o mayor
que el segundo, respectivamente_
Nota:
Por favor note que esta función sólo analiza una
dimensión de una matriz n_dimensional_ Por supuesto, puede
analizar dimensiones más profundas usando, por
ejemplo, array_udiff_assoc($matriz1[0], $matriz2[0],
"func_alguna_comparacion");_