# array_udiff_assoc

(PHP 5, PHP 7, PHP 8)

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

array_udiff_assoc(
array `$array1`,
array `$array2`,
array `$...` = ?,
callable `$value_compare_func`
): array

Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno.

> 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_assoc($array1[0], $array2[0], "alguna_func_comparacion");`.

### Parámetros

`array1`

  El primer array.

`array2`

  El segundo array.

`value_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. Observe que antes de PHP 7.0.0 este entero debía estar en el rango de -2147483648 a 2147483647.

  callback(mixed `$a`, mixed `$b`): int

### 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

Ejemplo #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() - Calcula la intersección de arrays con una comprobación de índices adicional, compara la información mediante una función de retrollamada
- array_uintersect_uassoc() - Calcula la intersección de arrays con una comprobación de índices adicional, compara la información y los índices mediante funciones de retrollamada por separado