Position actuelle: Accueil> Derniers articles> Pourquoi array_diff_key () ne peut-il pas être utilisé pour comparer les valeurs des tableaux? Ne laissez pas ce malentendu commun vous nuire!

Pourquoi array_diff_key () ne peut-il pas être utilisé pour comparer les valeurs des tableaux? Ne laissez pas ce malentendu commun vous nuire!

M66 2025-07-18

En PHP, le traitement des tableaux est une partie très importante du développement quotidien. Plusieurs fois, nous rencontrerons des situations où nous devons comparer deux tableaux, et la fonction array_diff_key () est l'une des méthodes courantes utilisées pour comparer les noms de clés du tableau dans PHP. Il découvre différentes paires de valeurs clés en comparant les noms clés du tableau, mais certains développeurs ont mal compris ses fonctionnalités et pensent qu'il peut être utilisé pour comparer les valeurs du tableau. Aujourd'hui, clarifions ce malentendu.

Quelle est la fonction array_diff_key () ?

array_diff_key () est une fonction de PHP qui compare les noms de clés de tableau. Il renvoie un tableau d'éléments contenus dans le premier tableau mais pas dans d'autres tableaux. Notez que voici une comparaison basée sur le nom de clé , pas la valeur.

Prototype de fonction:

 array_diff_key(array $array1, array $array2, array ...$arrays): array

Description du paramètre:

  • $ Array1 : Le premier tableau à comparer.

  • $ array2, ... $ Arrays : un ou plusieurs autres tableaux à comparer avec le premier tableau.

Valeur de retour:

  • Renvoie un élément contenant tous les noms de clés dans $ array1 qui n'existent pas dans d'autres tableaux.

Exemple de code:

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry'
];

$array2 = [
    'a' => 'apple',
    'd' => 'date'
];

$result = array_diff_key($array1, $array2);
print_r($result);

Sortir:

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

Dans cet exemple, array_diff_key () renvoie les éléments correspondant aux noms de clés B et C en comparant les noms de clés du tableau $ array1 et $ array2 . Cela indique que les clés B et C n'existent pas dans $ array2 .

Misonctant: array_diff_key () est utilisé pour comparer les valeurs du tableau

De nombreux développeurs croient à tort que Array_Diff_Key () est utilisé pour comparer les valeurs d'un tableau, ce qui est évidemment faux. Par exemple, supposons que vous souhaitiez trouver les parties des deux tableaux avec des valeurs différentes, vous avez peut-être utilisé Array_Diff_Key () incorrectement, mais en fait, il se concentre uniquement sur les noms de clés du tableau.

Exemple d'erreur:

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry'
];

$array2 = [
    'a' => 'apple',
    'b' => 'blueberry',
    'c' => 'cherry'
];

$result = array_diff_key($array1, $array2);
print_r($result);

Sortir:

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

Ce résultat ne reflète pas réellement la différence dans les valeurs du tableau, mais n'est comparée que sur la base du nom de la clé. La fonction Array_Diff_Key () ne compare pas les valeurs dans le tableau, il n'utilisera donc pas l'effet que nous voulons.

Méthodes pour comparer correctement les valeurs du tableau

Si vous souhaitez comparer les valeurs de deux tableaux au lieu de noms de clés, vous pouvez utiliser la fonction array_diff () . array_diff () compare les valeurs du tableau et renvoie différents éléments dans les deux tableaux.

Utilisez array_diff () pour comparer les valeurs:

 $array1 = ['apple', 'banana', 'cherry'];
$array2 = ['apple', 'blueberry', 'cherry'];

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

Sortir:

 Array
(
    [1] => banana
)

Dans cet exemple, Array_Diff () renvoie une partie avec différentes valeurs (voici Banana ), plutôt que de comparer les noms de clés.

Résumer

array_diff_key () est une fonction qui se compare en fonction des noms de clés de tableau, non utilisés pour comparer les valeurs du tableau. Si vous souhaitez comparer les valeurs de deux tableaux, vous devez utiliser la fonction Array_Diff () au lieu de Array_Diff_Key () . En comprenant leurs utilisations et leurs différences, cela peut vous aider à écrire du code plus efficacement et à éviter de tomber dans les malentendus communs.

J'espère que cet article peut vous aider à mieux comprendre le rôle de Array_Diff_Key () et éviter de faire des erreurs d'abus dans le développement réel! Si vous avez des questions ou si vous souhaitez explorer davantage d'autres fonctions de tableau de PHP, n'hésitez pas à demander.