array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'function.array-diff-uassoc.php', 1 => 'array_diff_uassoc', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Funciones de Arrays', ), 'prev' => array ( 0 => 'function.array-diff-key.php', 1 => 'array_diff_key', ), 'next' => array ( 0 => 'function.array-diff-ukey.php', 1 => 'array_diff_ukey', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/array/functions/array-diff-uassoc.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Calcula la diferencia entre arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada suministrada por el usuario
Compara array1
contra array2
y
retorna la diferencia. A diferencia de array_diff() la keys del
array se utilizan en la comparación.
A diferencia de array_diff_assoc() una función de devolución de llamada suministrada por el usuario se utiliza para la comparación de los índices, no una función interna.
array1
Array a comparar
array2
Un array contra el cual comparar
...
Más arrays contra los cuales comparar
key_compare_func
La 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.
Retorna un array conteniendo todas las entradas del
array1
que no están presentes en ninguno de los otros arrays.
Ejemplo #1 Ejemplo de array_diff_uassoc()
El par "a" => "green"
está presente en ambos arrays y por lo tanto no está en la salida de
la función. A diferencia de ésto, el par 0 => "red"
está en la salida ya que en el segundo argumento "red"
tiene una key que es 1
.
<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$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 2 índices es chequeada por la función de devolución de llamada suministrada por el usuario.
Nota:
Esta función sólo comprueba una dimensión de un array n-dimensional. Por supuesto, se pueden comprobar dimensiones más profundas mediante, por ejemplo,
array_diff_uassoc($array1[0], $array2[0], "key_compare_func");
.