En PHP, les tableaux sont très courants et importants de données de données. Pendant le processus de programmation, nous devons souvent rechercher, filtrer, modifier et d'autres opérations de tableaux. PHP fournit une fonction de traitement de tableau riche, où array_fill_keys et array_keys sont deux fonctions puissantes. La combinaison intelligente de ces deux fonctions peut nous aider à optimiser les opérations du tableau et à améliorer l'efficacité du code.
array_keys ()
array_keys () est utilisé pour renvoyer un tableau de tous les noms de clés du tableau. Cette fonction est généralement très utile lorsque nous devons obtenir les valeurs de certaines clés dans un tableau.
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$keys = array_keys($array); // retour ['a', 'b', 'c']
array_fill_keys ()
array_fill_keys () est utilisé pour remplir le nom de clé spécifié avec une valeur spécifique. Cette fonction générera un nouveau tableau basé sur le tableau des noms de clés passés et remplira toutes les valeurs correspondant à ces noms de clés avec les valeurs spécifiées.
$keys = ['a', 'b', 'c'];
$filledArray = array_fill_keys($keys, 0); // retour ['a' => 0, 'b' => 0, 'c' => 0]
La combinaison de ces deux fonctions peut nous aider à gérer efficacement certaines opérations de tableau communes, telles que déterminer si un tableau contient certains noms de clés et attribuer des valeurs par défaut à ces noms de clés. Voici plusieurs scénarios d'application courants.
Supposons que nous ayons un tableau contenant certains noms de clés, mais nous ne savons pas si certains noms de clés sont manquants dans le tableau. Si ces noms de clés sont manquants, nous voulons définir des valeurs par défaut pour eux. À l'heure actuelle, il peut être implémenté en combinaison avec array_fill_keys et array_keys .
$array = ['a' => 1, 'b' => 2];
// Définissez le nom de clé à vérifier
$requiredKeys = ['a', 'b', 'c', 'd'];
// Obtenez le nom de clé existant dans le tableau
$existingKeys = array_keys($array);
// Trouver le nom de la clé manquante
$missingKeys = array_diff($requiredKeys, $existingKeys);
// utiliser array_fill_keys Définir les valeurs par défaut pour les noms de clés manquants
$defaultValues = array_fill_keys($missingKeys, 0);
// Fusionner le tableau d'origine avec des paires de valeurs clés manquantes
$finalArray = array_merge($array, $defaultValues);
print_r($finalArray);
Array
(
[a] => 1
[b] => 2
[c] => 0
[d] => 0
)
Dans cet exemple, nous utilisons Array_Keys pour obtenir les noms de clés existants dans le tableau, utilisons Array_Diff pour trouver les noms de clés manquants, puis utilisez Array_Fill_keys pour remplir la valeur par défaut 0 pour ces noms de clés manquants, et enfin fusionner le tableau d'origine et la nouvelle paire de valeurs de clé via Array_Merge .
Parfois, nous devons ajouter dynamiquement plusieurs valeurs par défaut de la clé au tableau. Extraire le nom de clé existant via Array_Keys et remplir la valeur par défaut avec array_fill_keys peut rendre le code plus concis et efficace.
$existingArray = ['x' => 1, 'y' => 2];
// Définir un nouveau nom de clé
$newKeys = ['a', 'b', 'c'];
// utiliser array_fill_keys Remplissez la valeur par défaut du nouveau nom de clé
$newValues = array_fill_keys($newKeys, 0);
// Fusionner les tableaux existants et les nouvelles paires de valeurs clés
$finalArray = array_merge($existingArray, $newValues);
print_r($finalArray);
Array
(
[x] => 1
[y] => 2
[a] => 0
[b] => 0
[c] => 0
)
Ici, nous remplissons d'abord la valeur par défaut 0 du nouveau nom de clé via array_fill_keys , puis le combine avec le numéro d'origine pour obtenir le résultat final.
Dans certains cas, nous devrons peut-être traiter les tableaux contenant des URL, et les noms de domaine de ces URL peuvent avoir besoin d'être uniformément remplacés. Supposons que nous devons remplacer tous les noms de domaine d'URL dans le tableau avec m66.net , nous pouvons utiliser array_map pour le traiter avec str_replace .
$urls = [
'https://www.example.com/page1',
'https://www.example.com/page2',
'https://m66.net/page3'
];
// Remplacer tout URL Nom de domaine dans
$updatedUrls = array_map(function ($url) {
return preg_replace('/https?:\/\/(www\.)?[^\/]+/', 'https://m66.net', $url);
}, $urls);
print_r($updatedUrls);
Array
(
[0] => https://m66.net/page1
[1] => https://m66.net/page2
[2] => https://m66.net/page3
)
En remplaçant le nom de domaine dans l'URL par des expressions régulières, nous pouvons facilement remplacer le nom de domaine de toutes les URL par M66.net , terminant ainsi l'opération de remplacement par lots.
En combinant intelligemment Array_Fill_keys et Array_Keys , nous pouvons optimiser les opérations de Array en PHP, en particulier lorsque vous traitez des noms de clés de tableau. Qu'il s'agisse de définir des valeurs par défaut pour les noms de clés manquants, d'ajouter de nouvelles valeurs de clés dynamiquement ou de verser des réseaux d'URL, la combinaison de ces fonctions peut nous aider à écrire du code plus efficace et concis. Dans le développement réel, l'utilisation rationnelle de ces fonctions de tableau peut considérablement améliorer la lisibilité et l'efficacité d'exécution du code.