Funciones de Arrays
PHP Manual

array_udiff_uassoc

(PHP 5)

array_udiff_uassocComputa 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

Descripción

array array_udiff_uassoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func , callable $key_compare_func )

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.

Observe que las claves son usadas en la comparación, a diferencia de array_diff() y array_udiff().

Parámetros

array1

El primer array.

array2

El segundo array.

data_compare_func

La función de comparación debe devolver un entero menor, igual o mayor que cero si el primer argumento se considera que sea respectivamente menor, igual o mayor que el segundo.

int callback ( mixed $a, mixed $b )
key_compare_func

La comparación de las claves (índices) se hace también mediante la función de llamada de retorno key_compare_func. Este comportamiento es diferente del de array_udiff_assoc(), ya que esta última compara los índices usando una función interna.

Valores devueltos

Devuelve un array que contiene todos los valores de array1 que no están presentes en ningno de los demás argumentos.

Ejemplos

Ejemplo #1 Ejemplo de array_udiff_uassoc()

<?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;
    }

    static function 
comp_func_key($a$b)
    {
        if (
$a === $b) return 0;
        return (
$a $b)? 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_uassoc($a$b, array("cr""comp_func_cr"), array("cr""comp_func_key"));
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. Recuerde que debe de proporcionar 2 funciones de llamada de retorno.

Notas

Nota: 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_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

Ver también


Funciones de Arrays
PHP Manual