En PHP, les tableaux sont des structures de données très courantes qui peuvent être utilisées pour stocker, organiser et traiter plusieurs éléments de données. Lorsqu'ils traitent des tableaux, les fonctions de comparaison des tableau sont des outils indispensables, qui nous permettent de comparer les différences, l'égalité ou certaines conditions spécifiques entre deux tableaux. Parmi les nombreuses fonctions de comparaison Array, Array_Diff_assoc () est une fonction couramment utilisée, mais il existe quelques différences avec d'autres fonctions telles que Array_Diff () et Array_Diff_Key () . Cet article effectuera une analyse détaillée des scénarios d'utilisation et des différences de ces fonctions pour aider les développeurs à faire des choix appropriés dans le développement réel.
La fonction array_diff_assoc () compare deux tableaux ou plus et renvoie tous les éléments du premier tableau différent des autres tableaux. La différence avec array_diff () est que Array_Diff_assoc () comparera également les noms de clés en plus de comparer les valeurs du tableau. Si un élément a la même valeur mais différents noms de clés, il sera également considéré comme différent.
$array1 = [
"a" => "apple",
"b" => "banana",
"c" => "cherry"
];
$array2 = [
"a" => "apple",
"b" => "banana",
"d" => "date"
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
Sortir:
Array
(
[c] => cherry
)
Dans cet exemple, array_diff_assoc () ne renvoie que l'élément "C" => "Cherry" dans Array1 car il n'a pas le nom et la valeur de la clé correspondante dans Array2 .
Lorsque vous devez faire correspondre exactement les clés et les valeurs du tableau.
Lorsque vous comparez deux tableaux, les exigences ne sont pas seulement des valeurs différentes, mais aussi les noms de clés sont également différents.
La fonction Array_Diff () compare uniquement les valeurs du tableau et renvoie toutes les valeurs du premier tableau qui ne sont pas dans d'autres tableaux. Il ignore les noms clés du tableau.
$array1 = ["apple", "banana", "cherry"];
$array2 = ["apple", "banana", "date"];
$result = array_diff($array1, $array2);
print_r($result);
Sortir:
Array
(
[2] => cherry
)
Dans cet exemple, Array_Diff () se compare uniquement en fonction de la valeur, renvoyant "Cherry" , ignorant son nom de clé dans le tableau.
Ne vous souciez que de la valeur du tableau et quel que soit le nom clé.
Il est nécessaire de vérifier si les éléments d'un tableau existent dans un autre.
La fonction array_diff_key () compare les noms de clés du tableau, pas les valeurs. Il renvoie toutes les clés dans le premier tableau qui n'apparaît pas dans d'autres tableaux.
$array1 = [
"a" => "apple",
"b" => "banana",
"c" => "cherry"
];
$array2 = [
"a" => "apple",
"b" => "banana",
"d" => "date"
];
$result = array_diff_key($array1, $array2);
print_r($result);
Sortir:
Array
(
[c] => cherry
)
Dans cet exemple, array_diff_key () se compare en fonction du nom de clé et renvoie l'élément correspondant au nom de clé "C" .
Ne vous souciez que des noms de clés du tableau et ne considérez pas les valeurs correspondantes des clés.
Il est nécessaire de déterminer si la clé d'un tableau existe dans un autre tableau.
Selon les exigences, nous devons choisir la fonction de comparaison de tableau appropriée. Voici des recommandations dans les scénarios communs:
Lorsque vous devez correspondre exactement aux noms et valeurs de clés d'un tableau, utilisez array_diff_assoc () . Par exemple, lorsque vous avez deux tableaux associatifs et que vous devez découvrir la différence entre eux dans les clés et les valeurs.
Lorsque vous ne vous souciez que de la valeur du tableau et ne considérez pas le nom de clé, utilisez array_diff () . Par exemple, lors de la détermination de si la valeur d'un tableau est contenue dans un autre tableau.
Lorsque vous ne vous souciez que des noms clés du tableau, utilisez Array_Diff_Key () . Par exemple, vérifiez si la clé d'un tableau se trouve dans un autre tableau.
PHP fournit une variété de fonctions de comparaison du tableau, chacune avec son objectif spécifique. Comprendre le fonctionnement de chaque fonction et ses scénarios applicables vous aidera à choisir la fonction la plus appropriée en développement et à améliorer l'efficacité et la lisibilité de votre code. Que ce soit la comparaison des valeurs de tableau, des noms de clés ou de les comparer en même temps, PHP fournit des outils flexibles pour répondre à différents besoins.