Position actuelle: Accueil> Derniers articles> Combinaison json_decode () et array_diff_key () pour traiter les données JSON

Combinaison json_decode () et array_diff_key () pour traiter les données JSON

M66 2025-05-15

En PHP, le traitement des données JSON est une tâche courante, surtout lorsque nous devons récupérer ou transférer des données de l'API. L'une des exigences communes consiste à filtrer les paires de valeurs clés spécifiées dans JSON, qui peuvent généralement être traitées en convertissant JSON en un tableau PHP, puis en utilisant les fonctions correspondantes. Cet article présentera comment combiner les fonctions JSON_DECODE () et array_diff_key () pour filtrer efficacement les paires de valeurs clés spécifiques dans les données JSON.

1. Utilisez la fonction json_decode () pour analyser les données JSON

Tout d'abord, la fonction JSON_DECODE () est utilisée pour convertir les chaînes au format JSON en tableaux PHP. L'utilisation de base de cette fonction est la suivante:

 $json_data = '{"name": "John", "age": 30, "city": "New York"}';
$data = json_decode($json_data, true);  // Le deuxième paramètre true Laissez le résultat de retour être un tableau

Dans le code ci-dessus, $ JSON_DATA est une chaîne JSON, que JSON_DECODE () convertit en données PHP Array $ . Le tableau converti est:

 Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

2. Utilisez la fonction array_diff_key () pour filtrer les paires de valeurs de clé spécifiées

Une fois les données JSON converties en un tableau, nous pouvons utiliser la fonction array_diff_key () pour filtrer les paires de valeurs clés indésirables. Cette fonction compare les touches de deux tableaux et renvoie les paires de valeurs clés dans le premier tableau qui ne sont pas dans le deuxième tableau.

Supposons que nous voulons retirer l'âge et les clés de la ville du tableau ci-dessus, ne laissant que la clé de nom . Nous pouvons faire ceci:

 $keys_to_keep = ['name' => null];  // Clés à conserver
$filtered_data = array_diff_key($data, $keys_to_keep);

Cependant, la fonction array_diff_key () renvoie un tableau avec des paires de valeurs clés supprimées, de sorte que le code ici peut être déroutant. Pour éviter les malentendus, nous pouvons conserver des clés spécifiques en exploitant réversement les clés à supprimer:

 $keys_to_remove = ['age' => null, 'city' => null];  // Clés à supprimer
$filtered_data = array_diff_key($data, $keys_to_remove);

De cette façon, $ filtered_data ne contiendra que la valeur correspondant à la clé de nom :

 Array
(
    [name] => John
)

3. Exemple d'application pratique: obtenir des données de l'API et filtrer

Supposons que nous ayons des données JSON de l'API et espérons filtrer les pièces qui nous intéressent. Voici un exemple plus spécifique:

 // Supposons que nous venons de certains URL Obtenu JSON données
$json_url = "https://m66.net/api/user_data";  // Remplacer par réel URL
$json_data = file_get_contents($json_url);

// Volonté JSON données解码为 PHP Tableau
$data = json_decode($json_data, true);

// Supposons que nous n'avons besoin que user_id et user_name Ces deux champs
$keys_to_keep = ['user_id' => null, 'user_name' => null];

// utiliser array_diff_key 筛选需要的données
$filtered_data = array_diff_key($data, $keys_to_keep);

// 输出筛选后的données
print_r($filtered_data);

Dans cet exemple, la fonction file_get_contents () obtient des données JSON de l'URL spécifiées et la convertit en un tableau PHP via JSON_DECODE () . Ensuite, utilisez array_diff_key () pour filtrer les champs requis et enfin imprimer les données filtrées.

4. Résumé

En combinant les fonctions json_decode () et array_diff_key () , nous pouvons facilement filtrer les paires de valeurs clés spécifiées à partir des données JSON. JSON_DECODE () est responsable de la conversion de chaînes JSON en tableaux PHP, tandis que Array_Diff_Key () nous aide à supprimer les clés indésirables pour obtenir certaines des données dont nous avons besoin. Cette approche peut être largement utilisée dans le traitement des résultats des appels d'API, ainsi que dans n'importe quel scénario où des informations spécifiques sont nécessaires pour extraire des données JSON.