Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada

# array_diff_uassoc

(PHP 5, PHP 7, PHP 8)

array_diff_uassoc — Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada

### Descripción

function array_diff_uassoc(array `$array`, array `...$arrays`, callable `$key_compare_func`): array

Se compara el array `array` con los arrays `arrays` y se devuelve la diferencia. A diferencia de la función array_diff(), las claves del array son utilizadas en la comparación.

A diferencia de la función array_diff_assoc(), un usuario proporciona una función de retrollamada utilizada para la comparación de los índices, y no una función interna.

### Parámetros

`array`

  El array a comparar

`arrays`

  Arrays a comparar contra

`key_compare_func`
  La función de comparación debe retornar un entero menor que, igual a, o mayor que 0 si el primer argumento es considerado, respectivamente, menor que, igual a, o mayor que el segundo.
  function callback(mixed `$a`, mixed `$b`): int
  Precaución

  Retornar valores no-entero desde la función de comparación, tales como float, resultará en una conversión interna del valor de retorno del callback a int. Así, valores tales como `0.99` y `0.1` serán convertidos ambos a un valor entero de `0`, lo que comparará tales valores como iguales.

### Valores devueltos

Devuelve un array que contiene todas las entradas del array `array` que no están presentes en ningún otro array.

### Ejemplos

Ejemplo #1 Ejemplo con array_diff_uassoc()

En este ejemplo, la pareja `"a" => "green"` está presente en los dos arrays, y por lo tanto, no está presente en el resultado de la función. Por el contrario, la pareja `0 => "red"` está presente en el resultado, ya que la clave de `"red"` es automáticamente asignada a `0` en el primer array, mientras que es asignada a `1` en el segundo array, ya que la clave `0` ya está asignada a `yellow`.

    <?php
    function key_compare_func($a, $b)
    {
        return $a <=> $b;
    }

    $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array("a" => "green", "yellow", "red");
    $result = array_diff_uassoc($array1, $array2, "key_compare_func");
    print_r($result);
    ?>

El ejemplo anterior mostrará:

    Array
    (
        [b] => brown
        [c] => blue
        [0] => red
    )

La igualdad de dos índices es verificada por la función del usuario.

### Notas

> Nota:

> Esta función solo verifica una dimensión de un array multidimensional. Es posible verificar subdimensiones utilizando, por ejemplo, `array_diff_uassoc($array1[1], $array2[1], "key_compare_func");`.

### Ver también

- array_diff() - Calcula la diferencia entre arrays
- array_diff_assoc() - Calcula la diferencia de dos arrays, teniendo en cuenta las claves
- array_udiff() - Calcula la diferencia entre dos arrays utilizando una función de retrollamada
- array_udiff_assoc() - Calcula la diferencia entre arrays con verificación de índices, compara los datos con una función de retrollamada
- array_udiff_uassoc() - Calcula la diferencia entre dos arrays asociativos, compara los datos y los índices con una función de retorno
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de dos arrays con pruebas sobre los índices
- array_uintersect() - Calcula la intersección de dos arrays, compara los datos utilizando una función de retrollamada
- array_uintersect_assoc() - Calcula la intersección de dos arrays con pruebas sobre el índice, compara los datos utilizando una función de retrollamada
- array_uintersect_uassoc() - Calcula la intersección de dos arrays con pruebas en el índice, compara los datos y los índices de los dos arrays utilizando una función de retrollamada separada

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open