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);
?>

Ejemplo de ejecución

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);
?>

Ejemplo de ejecución