Position actuelle: Accueil> Derniers articles> Utilisez array_diff_key () pour implémenter l'opération de "soustraction"

Utilisez array_diff_key () pour implémenter l'opération de "soustraction"

M66 2025-06-06

Dans PHP, la fonction array_diff_key () est une fonction de tableau très utile qui nous permet de supprimer les paires de valeurs de clé spécifiées d'un tableau. Cette fonction renvoie un tableau en comparant les touches de deux tableaux qui contiennent des paires de valeurs de clé dans le premier tableau mais pas dans le deuxième tableau.

Prototype de fonction

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

Explication du paramètre

  • $ array1 : le tableau pour effectuer le fonctionnement "soustraction".

  • $ array2 : Le tableau qui doit être exclu sera supprimé les éléments de $ array1 qui ont la même clé que $ array2 .

  • ... $ tableaux : plusieurs tableaux peuvent être transmis pour exclure davantage les clés dans plusieurs tableaux.

Valeur de retour

Cette fonction renvoie un nouveau tableau contenant les éléments dans $ array1 , dont les clés n'existent pas dans $ array2 ou d'autres tableaux.

Exemple: supprimer les paires de valeurs de clé indésirables

Supposons que nous ayons le tableau suivant à partir duquel nous voulons supprimer des paires de valeurs clés indésirables.

 $array1 = [
    'name' => 'John',
    'age' => 25,
    'city' => 'New York',
    'country' => 'USA'
];

$array2 = [
    'age' => 0,
    'city' => ''
];

// utiliser array_diff_key Retirer le tableau $array1 Interne 'age' et 'city' Paires de valeurs clés
$result = array_diff_key($array1, $array2);

print_r($result);

Sortir:

 Array
(
    [name] => John
    [country] => USA
)

Dans cet exemple, nous supprimons les touches «âge» et «ville» de $ array1 via la fonction array_diff_key () . Cette fonction compare les touches dans $ array1 et $ array2 , et seules les clés de $ array1 qui ne sont pas dans $ array2 .

Comparaison de plusieurs tableaux

La fonction array_diff_key () prend également en charge plusieurs tableaux en tant que paramètres. Ce qui suit est un exemple montrant comment utiliser plusieurs tableaux pour supprimer les paires de valeurs de clé.

 $array1 = [
    'name' => 'Alice',
    'age' => 30,
    'gender' => 'female',
    'email' => 'alice@m66.net'
];

$array2 = [
    'age' => 0,
    'gender' => ''
];

$array3 = [
    'email' => ''
];

// utiliser array_diff_key 去除多个数组Interne键
$result = array_diff_key($array1, $array2, $array3);

print_r($result);

Sortir:

 Array
(
    [name] => Alice
)

Dans cet exemple, nous supprimons les clés «âge» , «genre» et «e-mail» de $ array1 en même temps. La fonction vérifie si la clé de $ array1 est dans $ array2 et $ array3 , et si oui, la paire de valeurs clés est supprimée.

Choses à noter

  1. Gardez la cohérence des clés du tableau : array_diff_key () ne compare que les clés du tableau, quelle que soit la valeur. Si vous devez comparer les valeurs, vous pouvez utiliser array_diff () ou array_diff_assoc () .

  2. Traitement du tableau vide : si le tableau passé est vide, revenez au tableau d'origine car aucun éléments ne peut être comparé.

  3. Array multidimensionnel : la fonction array_diff_key () compare uniquement la première clé de couche du tableau. Si le tableau est un tableau multidimensionnel, array_diff_key () doit être appliqué la couche par couche.

Conclusion

Grâce à la fonction array_diff_key () , PHP fournit un moyen concis et efficace de "soustraction" le tableau pour supprimer les paires de valeurs de clé inutiles. Vous pouvez utiliser cette fonction pour un contrôle à grain fin du tableau, supprimer des éléments inutiles et rendre le code plus concis et maintenable.