Position actuelle: Accueil> Derniers articles> Lorsque vous utilisez array_diff_assoc (), ignorer le nom de clé atteint vraiment le résultat attendu?

Lorsque vous utilisez array_diff_assoc (), ignorer le nom de clé atteint vraiment le résultat attendu?

M66 2025-06-07

Dans PHP, array_diff_assoc () est une fonction couramment utilisée qui compare deux tableaux et renvoie la différence entre eux. Cette fonction compare non seulement les valeurs du tableau, mais compare également les noms de clés du tableau. Par conséquent, de nombreux développeurs auront une question lors de l'utilisation: si nous ignorons les noms de clés lors de la comparaison des tableaux, pouvons-nous obtenir les résultats attendus?

Cet article utilisera quelques exemples pour explorer si l'ignorance du nom de la clé lorsque vous utilisez array_diff_assoc () peut réellement atteindre le résultat attendu.

Comment fonctionne array_diff_assoc ()

Tout d'abord, il est très important de comprendre l'utilisation de base de Array_Diff_assoc () . Cette fonction compare les touches et les valeurs de deux tableaux, et il renvoie un tableau contenant les valeurs différentielles. Il convient de noter que Array_Diff_assoc () vérifie l'égalité des noms et valeurs de clés, il ne s'agit donc pas seulement de comparer les valeurs.

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "blueberry", "d" => "date");

$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Résultat de sortie:

 Array
(
    [b] => banana
    [c] => cherry
)

Dans cet exemple, Array_Diff_assoc () compare les noms et valeurs de clés des deux tableaux et renvoie des éléments qui sont dans Array Array1 mais pas dans Array2 .

Ignorer les noms de clés

Parfois, les développeurs souhaitent comparer leurs valeurs sans considérer les noms de clés du tableau lors de la comparaison. Dans ce cas, array_diff_assoc () ne satisfait pas à l'exigence car elle compare les noms et valeurs de clés en même temps. Si vous souhaitez ignorer les noms de clés et comparer uniquement les valeurs, vous devez utiliser array_diff () .

Exemple: ignorez la comparaison des noms de clés

Supposons que nous ayons deux tableaux avec des noms de clés différents mais les mêmes valeurs:

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("x" => "apple", "y" => "banana", "z" => "cherry");

$result = array_diff($array1, $array2);
print_r($result);
?>

Résultat de sortie:

 Array
(
)

La fonction Array_Diff () est utilisée ici, et le résultat est un tableau vide, car Array_Diff () ne compare que les valeurs du tableau, et Array Array1 et Array2 contiennent les mêmes valeurs. Contrairement à array_diff_assoc () , array_diff () ne prend pas en compte le nom de clé, il ignore donc la différence de nom de clé et obtient le résultat attendu.

en conclusion

Comme on peut le voir dans l'exemple ci-dessus, Array_Diff_assoc () n'est pas le choix le plus approprié si nous voulons ignorer les noms de clés et comparer uniquement les valeurs du tableau. Au contraire, array_diff () est le bon outil pour implémenter cette fonction. array_diff_assoc () est toujours très utile lorsqu'il est nécessaire de considérer à la fois le nom de clé et la différence de valeur, mais si vous vous souciez uniquement de la différence de valeur et d'ignorer le nom de la clé, il sera plus approprié d'utiliser Array_Diff () .

Pour résumer, array_diff_assoc () ne peut pas ignorer le nom de la clé, donc lorsque vous devez ignorer le nom de la clé, vous devez choisir Array_Diff () au lieu de Array_Diff_assoc () .