Position actuelle: Accueil> Derniers articles> Remarque: array_diff_key () ne compare que les noms de clés, pas les valeurs de clé

Remarque: array_diff_key () ne compare que les noms de clés, pas les valeurs de clé

M66 2025-05-15

En PHP, les opérations de tableau sont des tâches très courantes, et il existe de nombreuses fonctions intégrées qui nous aident à des réseaux de processus efficacement. array_diff_key () est une fonction très pratique qui nous aide à comparer les tableaux en fonction des noms de clés et des tableaux de rendement des différences. Plusieurs fois, les développeurs auront des malentendus sur cette fonction, estimant qu'il comparera les valeurs correspondant aux noms clés, mais en fait, il ne comparera que le tableau, et. Aujourd'hui, nous analyserons en détail l'utilisation de cette fonction et clarifierons certains malentendus communs.

1. Fonction Introduction

La fonction array_diff_key () est utilisée pour comparer deux (ou plus) tableaux et renvoie un élément contenant les noms de clés dans le premier tableau qui n'apparaissent pas dans d'autres tableaux. Autrement dit, il renvoie un ensemble de différence contenant des noms de clés qui existent dans le premier tableau mais pas dans les autres tableaux.

Le prototype de fonction est le suivant:

 array_diff_key(array $array1, array $array2, array ...$arrays): array
  • $ Array1 : Le premier tableau à comparer.

  • $ array2, ... $ Arrays : un tableau qui doit être comparé à $ array1 (plusieurs tableaux peuvent être transmis).

2. Exemple de code

Pour comprendre cette fonction plus clairement, regardons un exemple de code réel:

 <?php
$array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

$array2 = [
    'b' => 5,
    'c' => 3,
    'd' => 7
];

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

Le résultat de la sortie est:

 Array
(
    [a] => 1
)

Dans cet exemple, la fonction array_diff_key () compare les noms de clés dans $ array1 et $ array2 . Il renvoie un nouveau tableau contenant le nom de clé «A» car «a» n'a pas de clé correspondante dans $ array2 .

3. Points clés: ne comparez que les noms de clés, pas les valeurs clés

Une caractéristique importante de la fonction array_diff_key () est qu'elle compare uniquement les noms de clés , mais ne considère pas les valeurs correspondantes des noms de clés. Dans l'exemple ci-dessus, nous voyons que les noms de clés «B» et «C» apparaissent dans les deux tableaux, mais leurs valeurs sont différentes: la valeur correspondant à «B» dans $ array1 est 2 , et la valeur correspondant à «B» dans $ array2 est 5 . Cependant, array_diff_key () ne compare pas les valeurs, il ne compare que les noms de clés, donc ni «b» ni «c» n'apparaît dans le résultat de retour.

4. Comparaison de plusieurs tableaux

array_diff_key () peut également accepter plusieurs tableaux en tant que paramètres pour comparer les noms de clés dans plusieurs tableaux. Voici un exemple contenant plusieurs tableaux:

 <?php
$array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

$array2 = [
    'b' => 5,
    'c' => 3,
    'd' => 7
];

$array3 = [
    'c' => 3,
    'd' => 7,
    'e' => 8
];

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

Le résultat de la sortie est:

 Array
(
    [a] => 1
)

Ici, array_diff_key () compare les noms clés de $ array1 et $ array2 et $ array3 . Le résultat renvoyé n'est toujours que le nom de clé «A» , car «B» et «C» trouvent tous les deux les noms de clés correspondants dans d'autres tableaux.

5. Choses à noter

  • Comparez les noms de clés uniquement : comme mentionné précédemment, array_diff_key () ne comparera que les noms de clés et ne comparera pas les valeurs de clés.

  • Comparaison multiple du tableau : vous pouvez transmettre plusieurs tableaux, array_diff_key () renverra le nom de clé unique dans le premier tableau en fonction des noms de clés dans tous les tableaux.

  • Le tableau d'origine reste inchangé : cette fonction ne modifie pas le tableau d'origine, mais renvoie un nouveau tableau.

6. Malets communs communs

Parfois, les développeurs peuvent penser à tort que Array_Diff_Key () comparera les valeurs clés d'un tableau. Par exemple, le code suivant:

 <?php
$array1 = [
    'a' => 10,
    'b' => 20,
    'c' => 30
];

$array2 = [
    'a' => 10,
    'b' => 25,
    'c' => 30
];

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

Résultat de sortie:

 Array
(
)

Dans cet exemple, bien que les valeurs de Key 'B' dans Arrays $ array1 et $ array2 soient différentes ( 20 et 25 respectivement), Array_Diff_Key () renvoie un tableau vide car il ne compare que les noms de clés, et les noms de clés 'A' et 'C' sont dans les deux tableaux, donc ils ne sont pas retournés.

7. Résumé

array_diff_key () est une fonction PHP très utile qui nous aide à comparer facilement les noms de clés des tableaux pour trouver ceux qui existent dans le premier tableau mais pas dans d'autres tableaux. N'oubliez pas qu'il ne compare que les noms de clés, et non les valeurs de clé . Cette fonctionnalité est particulièrement utile lorsque vous traitez avec des tableaux multidimensionnels ou lorsque vous devez filtrer les données uniquement par le nom de clé.

Lecture supplémentaire