(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_func
Devuelve un array que contiene todas las entradas del array
array 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 ejemplo anterior mostrará:
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");.
//array_diff_uassoc for multidimenssional array
$color_1=array('a'=>'white','b'=>'red','c'=>array('a'=>'green','b'=>'blue','c'=>'yellow'));
$color_2=array('a'=>'white','b'=>'red','c'=>array('a'=>'white','b'=>'red','c'=>'yellow'));
function key_compare($a,$b){
if($a===$b) return 0;
return($a>$b)?1:-1;
}
print_r(array_diff_uassoc($color_1['c'], $color_2['c'],"key_compare"));
//Output
Array
(
[a] => green
[b] => blue
)