Dans le développement de PHP, nous traitons souvent les problèmes de cas de nom de clé dans les tableaux et le fonctionnement de l'extraction des clés d'intersection à partir de plusieurs tableaux. array_change_key_case () et array_intersect_key () sont deux fonctions de tableau très pratiques. Lorsque nous les utilisons ensemble, nous pouvons obtenir un filtrage et une comparaison de données plus flexibles.
Cet article expliquera comment utiliser efficacement array_change_key_case () avec array_intersect_key () et utiliser un exemple pratique pour illustrer son utilisation.
array_change_key_case () est utilisé pour convertir tous les noms de clés d'un tableau en majuscules ou en minuscules.
grammaire:
array_change_key_case(array $array, int $case = CASE_LOWER): array
Le cas de paramètre $ est facultatif, et la valeur par défaut est case_lower (en bas de cas), ou peut être définie sur case_upper (Upper Case).
array_intersect_key () est utilisé pour comparer les noms de clés de deux (ou plus) des tableaux et des valeurs de retour dont les noms de clés sont présents dans le premier tableau.
grammaire:
array_intersect_key(array $array1, array ...$arrays): array
Supposons que nous ayons deux tableaux, l'une est les données de formulaire soumises par l'utilisateur et l'autre est la liste des champs que nous permettons de traiter. Nous voulons extraire les champs qui nous intéressent des données de formulaire et ignorer les différences de cas.
<?php
// Données soumises par l'utilisateur,Les noms clés possibles sont incohérents dans le cas
$formData = [
'Name' => 'Alice',
'EMAIL' => 'alice@m66.net',
'Age' => 30,
'Location' => 'Beijing'
];
// Champs autorisés(Unifié en minuscules)
$allowedFields = [
'name' => true,
'email' => true
];
// Convertir les noms de clés de données utilisateur en minuscules
$normalizedFormData = array_change_key_case($formData, CASE_LOWER);
// Obtenez le champ de la clé d'intersection
$filteredData = array_intersect_key($normalizedFormData, $allowedFields);
// Résultat de sortie
print_r($filteredData);
?>
Array
(
[name] => Alice
[email] => alice@vv99.net
)
Cette combinaison est utile lors de la gestion des demandes d'API, de la validation du formulaire ou du nettoyage des entrées utilisateur. Par exemple, lors de la construction d'une interface reposante, nous voulons souvent que le nom de champ soit insensible à la casse et n'accepte que des champs que nous permettons explicitement.
En utilisant d'abord array_change_key_case () pour unifier le cas des noms de clés, puis en utilisant array_intersect_key () pour filtrer les champs requis, nous pouvons effectuer un traitement plus précis et tolérant aux pannes des données de tableau. Cette combinaison est simple dans la logique et a une forte pratique, et est un modèle très recommandé dans le développement de PHP.
Si vous avez du mal à faire face à la correspondance sur le terrain ou au nettoyage des données, essayez cette combinaison, ce qui peut rendre votre code plus concis et robuste.