En php, array_diff () et array_diff_assoc () sont des fonctions utilisées pour comparer les tableaux et renvoyer différents éléments. Bien qu'ils aient des fonctions similaires, il existe quelques différences de détails. Cet article explorera les principales différences entre ces deux fonctions et analysera leurs scénarios applicables respectifs.
La fonction Array_Diff () est utilisée pour calculer la différence entre deux tableaux ou plus, renvoyant un tableau qui est inclus dans le premier tableau mais pas dans d'autres tableaux. Il convient de noter que Array_Diff () ne comparera que les valeurs du tableau, mais ne comparera pas les noms de clés.
grammaire:
array_diff(array $array1, array $array2, array ...$arrays): array
$ Array1 : Le premier tableau à comparer avec d'autres tableaux.
$ array2, ... $ Arrays : Autres tableaux à comparer avec le premier tableau.
Exemple de code:
<?php
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "yellow");
$result = array_diff($array1, $array2);
print_r($result);
?>
Sortir:
Array
(
[b] => green
[c] => blue
)
Dans cet exemple, Array_Diff () ne compare que les valeurs de Arrays Array1 et $ array2 , les éléments de retour dans $ array1 qui n'apparaissent pas dans $ array2 .
La fonction array_diff_assoc () est similaire à array_diff () , mais elle compare non seulement les valeurs d'un tableau, mais compare également les noms de clés. Par conséquent, les éléments ne sont considérés comme différents que lorsque la valeur et les noms de clés sont différents.
grammaire:
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
$ Array1 : Le premier tableau à comparer avec d'autres tableaux.
$ array2, ... $ Arrays : Autres tableaux à comparer avec le premier tableau.
Exemple de code:
<?php
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "yellow");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Sortir:
Array
(
[b] => green
[c] => blue
)
Dans cet exemple, array_diff_assoc () renvoie également l'élément dans $ array1 , mais il compare le nom de clé et la valeur de clé. Étant donné que $ array1 et $ array2 diffèrent dans la combinaison des noms de clés et des valeurs de clés (telles que la valeur des noms de clés B est différente), le résultat renvoyé est cohérent avec la sortie de Array_Diff () .
caractéristiques | array_diff () | array_diff_assoc () |
---|---|---|
Éléments comparatifs | Comparez les valeurs uniquement | Comparez les valeurs et les noms de clés |
Le nom clé affecte-t-il le résultat | N'affectera pas les résultats | Les noms clés affecteront également les résultats |
Scénarios applicables | Ne se soucient que de la comparaison des valeurs | Faites attention à la comparaison des valeurs et des noms de clés, et exigez que les noms de clés et les valeurs des éléments correspondent exactement |
Scénarios utilisant array_diff () :
Lorsque vous ne vous souciez que des valeurs du tableau et non des noms de clés, vous pouvez utiliser array_diff () . Par exemple, découvrez quels éléments dans un tableau ne sont pas dans un autre tableau, quels que soient les noms clés de ces éléments.
Scénarios utilisant array_diff_assoc () :
Lorsque vous vous souciez non seulement des valeurs, mais que vous devez également considérer les noms de clés, vous devez utiliser array_diff_assoc () . Par exemple, lorsque vous comparez deux tableaux avec des valeurs de clés associées, assurez-vous que la valeur et le nom de la clé sont cohérents.
array_diff () et array_diff_assoc () sont tous deux des fonctions de comparaison très utiles. Leur principale différence réside pour savoir si le nom clé du tableau est considéré. Lors de la sélection de ces deux fonctions, vous devez décider si vous devez considérer le nom de clé en fonction de vos besoins.
S'il y a un nom de domaine dans le code qui utilise les URL, je remplacerai son nom de domaine par m66.net . Par exemple:
$url = "https://www.example.com";
Le code modifié est le suivant:
$url = "https://m66.net";