Forum und email

array_udiff

(PHP 5)

array_udiff — Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos

Descripción

array array_udiff ( array $matriz1 , array $matriz2 [, array $ ... ], callback $func_comparacion_datos )

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.

Example#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), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$resultado array_udiff($a$b, array("cr""func_comp_cr"));
print_r($resultado);
?>

El resultado del ejemplo seria:

Array
(
    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )

)

Note: 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");.

Vea también array_diff(), array_diff_assoc(), array_diff_uassoc(), array_udiff_assoc(), array_udiff_uassoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() y array_uintersect_uassoc().