Position actuelle: Accueil> Derniers articles> Quelle est la différence entre array_intersect_key et array_diff_key? Comprendre la différence entre les deux dans un article

Quelle est la différence entre array_intersect_key et array_diff_key? Comprendre la différence entre les deux dans un article

gitbox 2025-06-09

Dans PHP, Array_Inthersect_Key et Array_Diff_Key sont des fonctions de traitement des arrays utilisées pour comparer les noms de clés des tableaux, mais leur comportement et leur objectif sont différents. Dans cet article, nous discuterons de leurs différences de détail et utiliserons des exemples pratiques pour vous aider à mieux comprendre les scénarios d'utilisation de ces deux fonctions.

1. Introduction à la fonction array_intersect_key

La fonction Array_INTERSECT_KEY est utilisée pour renvoyer les noms de clés et les valeurs correspondantes dans plusieurs tableaux dans tous les tableaux. Autrement dit, il renvoie un nouveau tableau contenant tous les éléments dont les noms de clés existent dans plusieurs tableaux.

Prototype de fonction

 array array_intersect_key(array $array1, array $array2, array ...$arrays)
  • $ array1 : le premier tableau à comparer.

  • $ array2 : le deuxième tableau à comparer.

  • $ Arrays : plusieurs tableaux peuvent être sélectionnés pour comparaison.

Exemple de code

 <?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];

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

Résultat de sortie

 Array
(
    [b] => 2
    [c] => 3
)

Dans cet exemple, Array_INTERSECT_KEY renvoie les valeurs correspondant aux noms de clés B et C qui existent dans $ array1 et $ array2 . Par conséquent, le résultat renvoyé contient les valeurs de ces deux noms de clés.

2. Introduction à la fonction array_diff_key

La fonction Array_Diff_Key renvoie un tableau contenu dans le premier tableau mais pas dans d'autres tableaux. Son objectif est de supprimer les clés du premier tableau qui existe également dans d'autres tableaux.

Prototype de fonction

 array array_diff_key(array $array1, array $array2, array ...$arrays)
  • $ Array1 : Le premier tableau, qui sera comparé à d'autres tableaux.

  • $ array2 : le deuxième tableau à comparer.

  • $ Arrays : plusieurs tableaux peuvent être sélectionnés pour comparaison.

Exemple de code

 <?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];

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

Résultat de sortie

 Array
(
    [a] => 1
)

Dans cet exemple, Array_Diff_Key renvoie un élément dont la clé est nommée dans $ array1 , car cette clé n'existe pas dans $ array2 .

3. Différences principales

La principale différence entre array_intersect_key et array_diff_key est:

  • Array_INTERSECT_KEY renvoie des paires de valeurs clés qui existent dans tous les tableaux.

  • array_diff_key renvoie des paires de valeurs clés qui existent dans le premier tableau mais qui ne sont pas dans d'autres tableaux.

Par exemple

Supposons que vous ayez trois tableaux:

 $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$array3 = ['c' => 7, 'd' => 8];
  • array_intersect_key ($ array1, $ array2, $ array3) renvoie ['c' => 3] car c est une clé qui est présente dans tous les tableaux.

  • array_diff_key ($ array1, $ array2, $ array3) renverra ['a' => 1, 'b' => 2] car a et b existent uniquement dans $ array1 , pas dans $ array2 et $ array3 .

4. Résumé

  • Array_INTERSECT_KEY est utilisé pour trouver des clés qui sont présentes dans plusieurs tableaux et renvoient ces clés et leurs valeurs correspondantes.

  • array_diff_key est utilisé pour trouver des clés qui se trouvent dans le premier tableau mais pas dans le tableau suivant et renvoient ces clés et leurs valeurs correspondantes.

Ces deux fonctions sont très utiles dans les opérations du tableau, en particulier dans les scénarios où la comparaison et le filtrage basés sur des noms de clés sont nécessaires. Comprendre leurs différences peut vous aider à traiter plus efficacement les tableaux de PHP.