(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");
.