(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada
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.
array
El array a comparar
arrays
Arrays a comparar contra
key_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.
Devuelve un array que contiene todas las entradas del array
array1
que no están presentes en
ningún otro array.
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 resultado del ejemplo sería:
Array ( [b] => brown [c] => blue [0] => red )
La igualdad de dos índices es verificada por la función del usuario.
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");
.