array_udiff_assoc
Computa la diferencia entre matrices con un chequeo de
índices adicional, comparando los datos con una llamada de
retorno
Descripción
arrayarray_udiff_assoc
arraymatriz1
arraymatriz2
array ...
callbackfunc_comparacion_datos
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 de array_udiff_assoc
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),);
$resultado = array_udiff_assoc($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>
]]>
&example.outputs;
cr Object
(
[miembro_privado:private] => 9
)
[0.5] => cr Object
(
[miembro_privado:private] => 12
)
[0] => cr Object
(
[miembro_privado:private] => 23
)
)
]]>
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.
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");.
Vea también
array_diff,
array_diff_assoc,
array_diff_uassoc,
array_udiff,
array_udiff_uassoc,
array_intersect,
array_intersect_assoc,
array_uintersect,
array_uintersect_assoc y
array_uintersect_uassoc.