(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.
arrayEl array a comparar
arraysArrays a comparar contra
key_compare_funcLa 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");.