Position actuelle: Accueil> Derniers articles> array_change_key_case () meilleures pratiques lors du traitement des données JSON

array_change_key_case () meilleures pratiques lors du traitement des données JSON

M66 2025-04-25

Dans le développement quotidien, nous obtenons souvent des données JSON à partir d'interfaces tierces. Cependant, le format de cas des noms de clés dans les données renvoyés par ces interfaces est incohérente, certains commencent par le capital et certains sont tous du capital ou en bas de cas. Ce format de nom de clé incohérent causera beaucoup de problèmes dans le traitement ultérieur des données, tels que l'extraction de champ, la cartographie unifiée, la conversion du tableau en objets, etc., qui peut faire des erreurs ou devenir longs.

Heureusement, PHP offre une fonction très pratique: array_change_key_case () , qui nous aide à unifier élégamment et efficacement les noms de clés dans les tableaux , résolvant ainsi ce problème.

1. Qu'est-ce que Array_Change_key_Case ()?

array_change_key_case () est une fonction intégrée dans PHP, qui est utilisée pour convertir les cas supérieurs et minuscules ou majuscules de tous les noms de clés du tableau.

Définition de la fonction:

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ Array : le tableau associatif à traiter;

  • $ case : convertit le type de cas cible, case_lower (par défaut) signifie convertir en minuscules et Case_upper signifie convertir en majuscules.

2. Scénario d'utilisation typique: traitement des données JSON

Utilisons une vraie chaîne JSON comme exemple pour montrer comment unifier élégamment les noms de clés avec une en haut et en minuscules.

Exemple de données JSON (à partir de l'interface API):

 {
    "UserID": 101,
    "UserName": "Alice",
    "Email": "alice@example.com"
}

Comme vous pouvez le voir, les noms de clés sont mélangés de cas. Lors du traitement, pour plus de commodité, nous voulons convertir tout en noms de clés en minuscules.

Exemple de code PHP:

 <?php

// Supposons que cela provient de l&#39;interface https://api.m66.net/user Données obtenues
$json = '{
    "UserID": 101,
    "UserName": "Alice",
    "Email": "alice@example.com"
}';

// premier pas:Volonté JSON Convertir en tableau associatif
$data = json_decode($json, true);

// Étape 2:utiliser array_change_key_case() Volonté键名统一转为小写
$normalized = array_change_key_case($data, CASE_LOWER);

// Tableau de sortie traité
print_r($normalized);

/*
Résultat de sortie:
Array
(
    [userid] => 101
    [username] => Alice
    [email] => alice@example.com
)
*/

?>

De cette façon, nous pouvons utiliser $ normalisé [«nom d'utilisateur»] et d'autres méthodes pour obtenir des valeurs sans se soucier du problème du cas incohérent des noms de clés.

3. Extension: gérez les noms de clés des JSons imbriqués

Si JSON est une structure imbriquée à plusieurs couches, l'utilisation de Array_Change_key_Case () ne peut que traiter la première couche, et nous devons encapsuler une fonction récursive pour gérer tous les niveaux:

 function array_keys_to_lower_recursive(array $array): array {
    $result = [];
    foreach ($array as $key => $value) {
        $key = is_string($key) ? strtolower($key) : $key;
        $result[$key] = is_array($value) ? array_keys_to_lower_recursive($value) : $value;
    }
    return $result;
}

La méthode d'utilisation est similaire à ce qui précède:

 $normalized = array_keys_to_lower_recursive($data);

4. Résumé

Lorsque vous traitez les données JSON et que vous souhaitez unifier le cas clé, Array_Change_Key_Case () est un outil simple et efficace. Avec la version récursive, il peut également gérer des structures de données plus complexes. Cela améliore non seulement la lisibilité du code, mais réduit également les coûts de maintenance.