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;
}
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($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>
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");_