En php, array_diff () et array_diff_ukey () sont tous deux utilisés pour comparer les tableaux, mais ils ont des différences évidentes dans leurs principes de travail et leurs scénarios d'utilisation. Cet article discutera des différences entre ces deux fonctions en détail et analysera leurs scénarios d'utilisation.
La fonction Array_Diff () est utilisée pour comparer les valeurs de deux tableaux ou plus, des éléments de retour qui existent dans le premier tableau mais pas dans d'autres tableaux. Cette fonction est comparée en fonction de la valeur, quel que soit le nom de clé.
array_diff(array $array1, array $array2, array ...$arrays): array
$array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];
$result = array_diff($array1, $array2);
print_r($result);
Array
(
[apple] => green
)
Dans cet exemple, Array_Diff () renvoie un élément qui existe dans le Array $ array1 mais pas dans $ array2 . Notez que Array_Diff () compare uniquement les valeurs et ne compare pas les clés.
Contrairement à array_diff () , la fonction array_diff_ukey () est comparée en fonction des noms de clés du tableau. Il compare si la clé du premier tableau existe dans d'autres tableaux, et exclut uniquement l'élément du résultat si les noms de clés ne correspondent pas.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];
$result = array_diff_ukey($array1, $array2, "key_compare");
print_r($result);
function key_compare($key1, $key2) {
return $key1 === $key2 ? 0 : -1;
}
Array
(
[apple] => green
)
Dans cet exemple, array_diff_ukey () est comparé par le nom de clé, renvoyant ainsi la clé "Apple" dans $ array1 car elle n'existe pas dans $ array2 .
array_diff () : Comparez les valeurs du tableau et ignorez les noms de clés. Applicable à si vous vous souciez uniquement de la question de savoir si la valeur existe dans d'autres tableaux.
array_diff_ukey () : Comparez les noms de clés du tableau et ignorez la valeur. Cela fonctionne si vous vous souciez de l'existence du nom de clé, et non de la question de savoir si les valeurs sont les mêmes.
Utilisez Array_Diff () : Lorsque vous devez comparer les valeurs d'un tableau, l'utilisation de Array_Diff () est un choix plus approprié. Par exemple, vous pouvez utiliser cette fonction lorsque vous souhaitez trouver des valeurs uniques dans un tableau.
Utilisez array_diff_ukey () : Lorsque vous devez comparer les noms de clés d'un tableau, il est plus approprié d'utiliser array_diff_ukey () . Il peut vous aider à filtrer certaines clés qui ne se soucient pas du contenu de la valeur. Par exemple, si vous avez un tableau associatif et que vous vous souciez uniquement de savoir si certaines clés spécifiques existent dans d'autres tableaux, vous pouvez utiliser cette fonction.
La principale différence entre array_diff () et array_diff_ukey () est qu'ils comparent différents objets: le premier est comparé en fonction de la valeur du tableau, tandis que le second est comparé en fonction du nom de clé du tableau. Selon vos besoins réels, le choix de la bonne fonction peut vous aider à traiter les tableaux plus efficacement.