(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Calcule la différence entre deux tableaux associatifs,
à l'aide d'une fonction de rappel
Description
array_diff_uassoc(array
$array, array
...$arrays, callable
$key_compare_func): array
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.
Liste de paramètres
-
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.
callback(mixed $a, mixed $b): int
Attention
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.
Valeurs de retour
Retourne un tableau contenant toutes les entrées du tableau
array1 qui ne sont présentes dans
aucun autre tableau.
Exemples
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.
Notes
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");.
Voir aussi
- array_diff() - Calcule la différence entre des tableaux
- array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
- array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
- array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index,
compare les données avec une fonction de rappel
- array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et
les index avec une fonction de rappel
- array_intersect() - Calcule l'intersection de tableaux
- array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
- array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en
utilisant une fonction de rappel
- array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index,
compare les données en utilisant une fonction de rappel
- array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index,
compare les données et les index des deux tableaux en utilisant
une fonction de rappel séparée