Position actuelle: Accueil> Derniers articles> Quelle est la différence entre array_diff_key () et array_diff ()?

Quelle est la différence entre array_diff_key () et array_diff ()?

M66 2025-05-12

array_diff_key () est utilisé pour comparer les clés de deux tableaux ou plus. Il renvoie un tableau contenant des paires de valeurs clés qui existent dans le premier tableau mais pas dans les autres tableaux.

Prototype de fonction:

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

Description du paramètre:

  • $ Array1 : Le premier tableau à comparer.

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

  • $ tableaux (facultatif): plus de tableaux de comparaison.

Valeur de retour: renvoie un tableau de paires de valeurs clés qui sont incluses dans $ array1 mais pas dans d'autres tableaux.

Exemple:

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

$array2 = [
    'a' => 1,
    'c' => 3,
    'd' => 4,
];

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

Sortir:

 Array
(
    [b] => 2
)

Explication: Dans cet exemple, array_diff_key () compare les clés dans $ array1 et $ array2 . Seule la clé «B» existe dans $ array1 , mais pas dans $ array2 , donc le résultat de retour est un tableau contenant uniquement la clé «B» .

Introduction à array_diff ()

array_diff () est utilisé pour comparer les valeurs d'un tableau. Il renvoie un tableau contenant des valeurs qui existent dans le premier tableau mais n'apparaissent pas dans d'autres tableaux.

Prototype de fonction:

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

Description du paramètre:

  • $ Array1 : Le premier tableau à comparer.

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

  • $ tableaux (facultatif): plus de tableaux de comparaison.

Valeur de retour: renvoie un tableau de valeurs incluses dans $ array1 mais pas dans d'autres tableaux.

Exemple:

 $array1 = [1, 2, 3];
$array2 = [2, 3, 4];

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

Sortir:

 Array
(
    [0] => 1
)

Explication: Dans cet exemple, Array_Diff () compare les valeurs dans $ array1 et $ array2 . La valeur 1 existe dans $ array1 , mais n'est pas dans $ array2 , donc un tableau contenant 1 est retourné.

Les principales différences entre array_diff_key () et array_diff ()

  1. Les objets comparés sont différents:

    • array_diff_key () compare les clés d'un tableau, c'est-à-dire ne faites attention que si les clés du tableau existent dans d'autres tableaux.

    • array_diff () compare la valeur du tableau, c'est-à-dire ne fait attention que si la valeur du tableau existe dans d'autres tableaux.

  2. Différents scénarios d'utilisation:

    • array_diff_key () convient aux cas où les tableaux doivent être filtrés par des clés. Par exemple, vous voudrez peut-être trouver une clé unique à un tableau.

    • array_diff () convient aux cas où les tableaux doivent être filtrés en fonction des valeurs. Par exemple, vous voudrez peut-être trouver des éléments uniques à un tableau.

  3. Les résultats retournés sont différents:

    • array_diff_key () renvoie un tableau contenant des clés uniques, et le tableau du résultat conserve les clés du tableau d'origine.

    • array_diff () renvoie un tableau contenant des valeurs uniques, et les clés du tableau dans le résultat seront réindexées.

Comment choisir?

Choisir d'utiliser array_diff_key () ou array_diff () dépend principalement de savoir si vous souhaitez comparer en fonction de la clé ou de la valeur:

  • Utilisez array_diff_key () : Lorsque vous ne vous souciez que des clés du tableau, utilisez array_diff_key () pour comparer les clés.

    • Par exemple: vous avez un tableau d'informations utilisateur et vous devez rechercher des champs (clés) qui existent dans ce tableau mais n'existent pas dans d'autres tableaux.

  • Utilisez array_diff () : Lorsque vous vous souciez uniquement des valeurs du tableau, utilisez array_diff () pour comparer les valeurs.

    • Par exemple: vous avez un tableau de commande et vous devez trouver des éléments qui y existent mais qui ne sont pas dans d'autres commandes.

Résumer

  • array_diff_key () compare les clés, qui conviennent au filtrage des tableaux par les clés.

  • Array_Diff () compare les valeurs et convient au filtrage des tableaux en fonction des valeurs.

  • La sélection de la bonne fonction en fonction du scénario spécifique peut vous aider à traiter les données de tableau plus efficacement.