array_udiff() devuelve una matriz que contiene
todos los valores de matriz1 que no
están presentes en ninguno de los otros argumentos. Note
que las claves son preservadas. Para la comparación de
datos, se usa func_comparacion_datos. Esta
función 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. Esto en contraste
a array_diff(), la cual usa una función
interna para la comparación de datos.
Ejemplo 1. Ejemplo de array_udiff()
<?php class cr { private $miembro_privado; function cr($val) { $this->miembro_privado = $val; }
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),);
Nota:
Dos elementos son considerados iguales si, y solo
si (string) $elem1 === (string) $elem2. Esto
es: cuando su representación tipo cadena es la misma.
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 array_udiff($matriz1[0], $matriz2[0],
"data_compare_func");.