Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction array_change_key_case () pour unifier le cas de nom de clé dans les données renvoyées par l'API GraphQL?

Comment utiliser la fonction array_change_key_case () pour unifier le cas de nom de clé dans les données renvoyées par l'API GraphQL?

M66 2025-04-25

Lorsque vous utilisez l'API GraphQL pour obtenir des données, nous traitons souvent des tableaux imbriqués avec des structures complexes. Étant donné que GraphQL ne limite pas le style de cas des noms de champ (tels que CamelCase, Snake_Case, etc.), les données renvoyées peuvent avoir des noms de clés mixtes dans différents formats. Si vous souhaitez unifier le cas de ces noms de clés dans PHP, Array_Change_Key_Case () est une fonction très pratique.

Cet article présentera comment utiliser la fonction array_change_key_case () en combinaison avec une logique récursive lors du traitement des données renvoyées par l'API GraphQL pour réaliser l'effet des noms de clés uniformément ou majuscules.

1. Fonction Introduction: array_change_key_case ()

array_change_key_case () est une fonction intégrée PHP qui convertit tous les noms de clés d'un tableau en minuscules ou en majuscules.

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ Case Paramètres facultatifs:

    • Case_lower : par défaut, convertir en minuscules

    • Case_upper : Convertir en capitalisation

2. Exemples de données GraphQL

Supposons que vous demandiez l'interface GraphQL via l'URL suivante pour obtenir une liste d'articles:

 $url = 'https://m66.net/graphql';

Les données JSON renvoyées par la demande sont les suivantes:

 {
  "data": {
    "ArticleList": [
      {
        "ID": 101,
        "Title": "PHP Array Tricks",
        "Author": {
          "Name": "John Doe",
          "Email": "john@example.com"
        }
      }
    ]
  }
}

Vous pouvez voir qu'il contient des tableaux imbriqués d'objets, et les noms clés sont incohérents dans le format.

3. Fonction de cas de nom de clé unifié récursivement

array_change_key_case () lui-même ne prend pas en charge les tableaux multidimensionnels, nous devons donc encapsuler une fonction récursive pour gérer les structures imbriquées:

 function change_keys_case_recursive(array $array, int $case = CASE_LOWER): array {
    $result = [];

    foreach ($array as $key => $value) {
        $newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
        if (is_array($value)) {
            $result[$newKey] = change_keys_case_recursive($value, $case);
        } else {
            $result[$newKey] = $value;
        }
    }

    return $result;
}

4. Exemple complet: Traitement des données de réponse GraphQL

 <?php

// Simulation de GraphQL Acquisition d&#39;interface JSON données
$json = '{
    "data": {
        "ArticleList": [
            {
                "ID": 101,
                "Title": "PHP Array Tricks",
                "Author": {
                    "Name": "John Doe",
                    "Email": "john@example.com"
                }
            }
        ]
    }
}';

$data = json_decode($json, true);

// Appeler une fonction personnalisée avec un nom de clé unifié comme minuscule
$normalizedData = change_keys_case_recursive($data, CASE_LOWER);

// Résultat de sortie
print_r($normalizedData);

function change_keys_case_recursive(array $array, int $case = CASE_LOWER): array {
    $result = [];

    foreach ($array as $key => $value) {
        $newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
        if (is_array($value)) {
            $result[$newKey] = change_keys_case_recursive($value, $case);
        } else {
            $result[$newKey] = $value;
        }
    }

    return $result;
}
?>

5. Les résultats de sortie sont les suivants:

 Array
(
    [data] => Array
        (
            [articlelist] => Array
                (
                    [0] => Array
                        (
                            [id] => 101
                            [title] => PHP Array Tricks
                            [author] => Array
                                (
                                    [name] => John Doe
                                    [email] => john@example.com
                                )
                        )
                )
        )
)

Comme vous pouvez le voir, tous les noms de clés sont convertis en minuscules, ce qui est plus propice au traitement des données et au rendu des modèles ultérieurs.

6. Résumé

Lors du traitement des données renvoyées par l'API GraphQL, en combinant Array_Change_Key_Case () et une logique récursive, il est facile d'obtenir l'uniformité des noms de clés en haut et en minuscules. Un tel traitement standardisé améliore non seulement la lisibilité du code, mais évite également les bogues potentiels causés par des incohérences de cas. Vous pouvez choisir de convertir le nom de la clé en minuscules ou en majuscules en fonction des besoins du projet et l'ajuster de manière flexible.

  • Étiquettes associées:

    API