array_udiff_assoc
(PHP 5)
array_udiff_assoc — Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno
Descripción
Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno.
Note: Por favor, observe que esta función sólo comprueba una dimensión de un array n-dimensional. Por supuesto, se pueden comprobar dimensiones más profundas usando, por ejemplo, array_udiff_assoc($array1[0], $array2[0], "alguna_func_comparacion");.
Parámetros
- array1
-
El primer array.
- array2
-
El segundo array.
- data_compare_func
-
La función de retorno de llamada de comparación.
La función de llamada de retorno proporcionada por el usuario se usa para la comparación. Debe devolver un valor de tipo integer menor que, igual, o mayor que cero si el primer argumento es considerado, respectivamente, menor que, igual, o mayor que el segundo.
Valores devueltos
array_udiff_assoc() devuelve un array que contiene todos los valores de array1 que no están presentes en ninguno de los demás argumentos. Observe que las claves se usan en la comparación a diferencia de array_diff() y array_udiff(). La comparación de la información de los arrays' se lleva a cabo usando una llamada de retorno proporcionada por el usuario. En este aspecto, el comportamiento es opuesto al de array_diff_assoc(), que usa una función interna para la comparación.
Ejemplos
Example #1 Ejemplo de array_udiff_assoc()
<?php
class cr {
private $miembro_privado;
function cr($val)
{
$this->miembro_privado = $val;
}
static function comp_func_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", "comp_func_cr"));
print_r($resultado);
?>
El resultado del ejemplo sería:
Array
(
[0.1] => cr Object
(
[miembro_privado:private] => 9
)
[0.5] => cr Object
(
[miembro_privado:private] => 12
)
[0] => cr Object
(
[miembro_privado:private] => 23
)
)
En el ejemplo de arriba se ve que el par "1" => new cr(4) está presente en ambos arrays, y que, de esta manera, no está en la salida de la función.
Ver también
- array_diff() - Calcula la diferencia entre arrays
- array_diff_assoc() - Calcula la diferencia entre arrays con un chequeo adicional de índices
- array_diff_uassoc() - Calcula la diferencia entre arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada suministrada por el usuario
- array_udiff() - Computa la diferencia entre arrays, usando una llamada de retorno para la comparación de datos
- array_udiff_uassoc() - Computa la diferencia entre arrays con una verificación de índices adicional, compara la información y los índices mediante una función de llamada de retorno
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de arrays con un chequeo adicional de índices
- array_uintersect() - Computa una intersección de arrays, compara la información mediante una función de llamada de retorno
- array_uintersect_assoc() - Computa la intersección de arrays con una comprobación de índices adicional, compara la información mediante una función de llamada de retorno
- array_uintersect_uassoc() - Computa la intersección de arrays con una comprobación de índices adicional, compara la información y los índices mediante funciones de llamada de retorno
