(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
array_diff_assoc — Calcula la diferencia de dos arrays, teniendo en cuenta las claves
Compara array
con los arrays arrays
y devuelve la diferencia. A diferencia de la función array_diff(),
las claves del array también se utilizan en la comparación.
array
El array a comparar
arrays
Arrays a comparar contra
Devuelve un array que contiene todos los valores del array
array
que no están presentes en los
otros arrays.
Versión | Descripción |
---|---|
8.0.0 | Esta función ahora puede ser llamada con un solo parámetro. Anteriormente, se requerían al menos dos parámetros. |
Ejemplo #1 Ejemplo con array_diff_assoc()
En este ejemplo, el par "a" => "green"
está presente en ambos arrays, y por lo tanto, no está presente en el
resultado de la función. Por el contrario, el par 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
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
El resultado del ejemplo sería:
Array ( [b] => brown [c] => blue [0] => red )
Ejemplo #2 Ejemplo con array_diff_assoc()
Dos valores de los pares clave => valor se
consideran iguales solo si (string) $elem1 === (string)
$elem2
. En otras palabras, se realiza una verificación estricta
en la representación en strings.
<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
El resultado del ejemplo sería:
Array ( [0] => 0 [1] => 1 )
Nota: Esta función solo verifica una dimensión de un array multidimensional. Es posible verificar subdimensiones utilizando, por ejemplo,
array_diff_assoc($array1[0], $array2[0]);
.
Nota: Es necesario asegurarse de que los argumentos se proporcionen en el orden correcto al comparar arrays similares con más claves. El nuevo array debe ser el primero de la lista.