(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
Compare le tableau array
avec les tableaux
arrays
et retourne la différence. Contrairement
à la fonction array_diff(), les clés du tableau sont
utilisées dans la comparaison.
Contrairement à la fonction array_diff_assoc(), un utilisateur fournit une fonction de rappel utilisée pour la comparaison des indices, et non une fonction interne.
array
Le tableau à comparer
arrays
Tableaux à comparer contre
key_compare_func
La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second.
Retourner des valeurs non-entières à partir de la fonction
de comparaison, telles que float, entraînera une conversion interne
de la valeur de retour du rappel en int. Ainsi, des valeurs telles que
0.99
et 0.1
seront toutes deux converties en une
valeur entière de 0
, ce qui comparera de telles valeurs comme égales.
Retourne un tableau contenant toutes les entrées du tableau
array1
qui ne sont présentes dans
aucun autre tableau.
Exemple #1 Exemple avec array_diff_uassoc()
Dans cet exemple, la paire "a" => "green"
est présente dans les deux tableaux, et donc, n'est pas présente dans le
résultat de la fonction. Au contraire, la paire 0 => "red"
est présente dans le résultat, car la clé de "red"
est
automatiquement assignée à 0
dans le premier tableau,
tandis qu'elle est assignée à 1
dans le deuxième tableau,
car la clé 0
est déjà assigné à yellow
.
<?php
function key_compare_func($a, $b)
{
return $a <=> $b;
}
$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);
?>
L'exemple ci-dessus va afficher :
Array ( [b] => brown [c] => blue [0] => red )
L'égalité de deux indices est vérifiée par la fonction utilisateur.
Note:
Cette fonction ne vérifie qu'une dimension d'un tableau multidimensionnel. Il est possible de vérifier des sous dimensions en utilisant, par example,
array_diff_uassoc($array1[1], $array2[1], "key_compare_func");
.