Dans la programmation PHP, les opérations de tableau sont l'une des tâches les plus courantes. Surtout lorsqu'il s'agit de tableaux multidimensionnels ou lors du filtrage des paires de valeurs de clé, PHP fournit de nombreuses fonctions pour simplifier ce type de fonctionnement. Parmi eux, les fonctions Array_Fill_Keys et Array_Inthersect_Key peuvent nous aider efficacement à effectuer un filtrage des clés, en particulier lorsque des clés spécifiques doivent être filtrées, ils peuvent considérablement améliorer la lisibilité et l'efficacité d'exécution du code.
array_fill_keys
Cette fonction crée un nouveau tableau dont les clés sont les valeurs du tableau spécifié, et les valeurs correspondant à toutes les clés seront remplies des mêmes valeurs. Cette fonction est très adaptée pour initialiser un nouveau tableau avec une clé spécifique.
array_fill_keys(array $keys, mixed $value): array
$ Keys : un tableau de clés, indiquant la clé que vous souhaitez utiliser dans le nouveau tableau.
$ Value : la valeur correspondant à chaque clé.
array_INTERSECT_KEY
Cette fonction renvoie un tableau contenant des éléments dans le tableau d'origine avec la même clé que le tableau spécifié. Il est parfait pour extraire les paires de valeurs clés dont nous avons besoin d'un grand tableau.
array_intersect_key(array $array1, array $array2): array
$ array1 : le tableau d'origine.
$ array2 : un tableau dont les clés seront utilisées pour correspondre au tableau d'origine.
Supposons que nous ayons un tableau d'informations utilisateur multiples qui contient un grand nombre de clés, et nous voulons seulement conserver certaines clés spécifiques. L'approche traditionnelle peut être d'utiliser ForEach pour parcourir les tableaux et porter des jugements conditionnels, tandis que l'utilisation de l'array_fill_keys et array_intrect_keys peut rendre notre code plus concis et efficace.
Supposons qu'il existe un tableau contenant des informations utilisateur:
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
Nous ne nous soucions que du nom , de l'e-mail et de l'âge de l'utilisateur, et nous n'avons pas besoin d'autres clés (telles que l'adresse et le téléphone ). Ce qui suit montre comment implémenter le filtrage des clés via array_fill_keys et array_intersect_key .
// Clés à conserver
$keys_to_keep = ['name', 'email', 'age'];
// Créer un nouveau tableau contenant les clés requises,La valeur est null
$empty_keys = array_fill_keys($keys_to_keep, null);
// utiliser array_intersect_key Filtrez les clés inutiles
$filtered_user_info = array_intersect_key($user_info, $empty_keys);
print_r($filtered_user_info);
Array
(
[name] => John
[email] => john@example.com
[age] => 30
)
Utilisez array_fill_keys ($ keys_to_keep, null) pour créer un nouveau tableau $ vide_keys , dont les clés sont celles que nous devons conserver, et la valeur est nul . La fonction de ce tableau consiste à servir de modèle pour les clés de filtrage.
Utilisez array_intersect_key ($ user_info, $ vide_keys) pour conserver les mêmes éléments dans le tableau $ user_info que les $ vide_keys , filtrant ainsi les touches inutiles.
Les avantages de cette méthode sont:
Pas besoin d'utiliser une boucle foreach .
Le filtrage des clés peut être réalisé de manière très concise.
Si le tableau est grand, les performances de Array_INTERSECT_KEY seront plus efficaces que la boucle foreach .
En plus du filtrage des clés à partir d'un tableau, Array_INTERSECT_KEY peut également être utilisé pour filtrer les clés communes à partir de plusieurs tableaux. Supposons que nous ayons deux tableaux, l'une contenant des informations utilisateur et l'autre contenant des informations d'autorisation administratrice, nous pouvons utiliser array_intersect_key pour obtenir la même clé dans les deux tableaux.
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
$admin_info = [
'name' => 'John',
'email' => 'john@example.com',
'role' => 'admin'
];
// Obtenez la clé commune de deux tableaux
$common_keys = array_intersect_key($user_info, $admin_info);
print_r($common_keys);
Array
(
[name] => John
[email] => john@example.com
)
Array_INTERSECT_KEY compare les clés de deux tableaux et renvoie des éléments avec la même clé.
En combinant array_fill_keys et array_intersect_keys , nous pouvons utiliser très efficacement le filtrage des clés du tableau. Cette méthode améliore non seulement la lisibilité du code, mais offre également de meilleures performances lors du traitement de grandes quantités de données. Qu'il s'agisse de filtrer les clés d'un tableau ou d'extraire les clés communes à partir de plusieurs tableaux, les deux fonctions nous fournissent une grande commodité.
J'espère que cet article peut vous aider à comprendre comment utiliser ces deux fonctions pour effectuer des opérations de filtrage de clés efficaces et améliorer vos capacités de programmation PHP!