PHP: array_diff_uassoc - Manual
(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada
Descripció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.
Valores devueltos
Devuelve un array que contiene todas las entradas del array
array1 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
Found A Problem?
12 years ago
//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
)