(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.
arrayEl array a comparar
arraysArrays 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.