Función array_diff_uassoc() de PHP
Ejemplo
Comparar los nombres y valores de clave de dos matrices (usar una función personalizada para comparar los nombres de clave) y devolver la diferencia:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"rojo","b"=>"verde","c"=>"azul"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
Definición y uso
La función array_diff_uassoc() se utiliza para comparar los nombres y valores de clave de dos (o más) matrices y devuelve la diferencia.
Nota:¡Esta función utiliza una función personalizada para comparar los nombres de clave!
Esta función compara los nombres y valores de clave de dos (o más) matrices y devuelve una matriz de diferencia que incluye todos los elementos quearray1) pero no en cualquier otro array de parámetros (array2 o array3 etc.) los nombres de clave y valores.
Sintaxis
array_diff_uassoc(array1,array2,array3,...myfunction);
Parámetros | Descripción |
---|---|
array1 | Obligatorio. Primera matriz para comparar con otras. |
array2 | Obligatorio. Matriz para comparar con la primera. |
array3,... | Opcional. Otras matrices para comparar con la primera. |
myfunction | Obligatorio. Define la cadena de caracteres de la función comparable. Si el primer parámetro es menor, igual o mayor que el segundo parámetro, la función de comparación debe devolver un entero mayor, igual o menor que 0. |
Descripción
La función array_diff_uassoc() utiliza una función de callback personalizada para realizar comprobaciones de índice y calcular la diferencia entre dos o más matrices. Devuelve una matriz que incluye todos los elementos que array1 pero no en cualquier otro array de parámetros.
Nota: a diferencia de la función array_diff(), también se comparan los nombres de clave.
El parámetro myfunction es una función personalizada del usuario para comparar dos matrices, que debe tener dos parámetros, es decir, los nombres de clave que se van a comparar. Por lo tanto, es exactamente opuesto al comportamiento de la función array_diff_assoc(), que utiliza una función interna para la comparación.
Los nombres de clave en el array devuelto se mantienen sin cambios.
Detalles técnicos
Valor de retorno: | Devuelve un array de diferencia que incluye todos los valores en los arrays comparados (array1) pero no en cualquier otro array de parámetros (array2 o array3 etc.) los nombres de clave y valores. |
Versión de PHP: | 5+ |
Más ejemplos
Ejemplo 1
Comparar los nombres de clave y los valores de tres matrices (usar una función personalizada del usuario para comparar los nombres de clave) y devolver la diferencia:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"rojo","b"=>"verde","c"=>"azul"); $a2=array("a"=>"rojo","b"=>"verde","d"=>"azul"); $a3=array("e"=>"amarillo","a"=>"rojo","d"=>"azul"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>