[RESOLU] Aide pour un foreach dans un json avec une "sous-catégorie" dynamique

LDN
Eléphanteau du PHP | 10 Messages

30 juin 2016, 23:41

Hello, voici la structure de mon json :

Code : Tout sélectionner

{ "History": [ { "12345678912345678": { "option1": [ { "data1": "foo", "data2": "bar", "data3": "foo" }, { "data1": "bar", "data2": "foo", "data3": "bar" }, { "data1": "foo", "data2": "bar", "data3": "foo" }, { "data1": "bar", "data2": "foo", "data3": "bar" } ], "option2": [ { "data1": "foo", "data2": "bar", "data3": "foo" }, { "data1": "bar", "data2": "foo", "data3": "bar" } ] } } ] }
J'ai besoin d'exploiter les données dans "option1" avec un foreach dans le but
de générer un tableau, mais le champ "12345678912345678" du json est une
valeur numérique qui change constamment.

J'ai donc bêtement essayer plusieurs solutions autour du code suivant, mais
sans résultat :

Code : Tout sélectionner

<?php $timeout = stream_context_create(array('http' => array('timeout' => 5))); $json_source_history = file_get_contents('URL/History?id=' . $_GET['id'], 0, $timeout); $history = json_decode($json_source_history); foreach($history->History->$_GET['id']->option1 as $history_data) { ... ... ... } ?>
Auriez-vous une solution ?
Par avance, merci !

Petit nouveau ! | 7 Messages

01 juil. 2016, 15:42

Salut,

Voici comment je procèderai:

Code : Tout sélectionner

<?php $timeout = stream_context_create(array('http' => array('timeout' => 5))); $json_source_history = file_get_contents('URL/History?id=' . $_GET['id'], 0, $timeout); $history = json_decode($json_source_history); $id=(array_keys(get_object_vars($history->History[0]))[0]); foreach($history->History[0]->$id->option1 as $history_data) { ... ... ... } ?>
Bonne soirée

LDN
Eléphanteau du PHP | 10 Messages

01 juil. 2016, 19:52

Hello,

Fonctionne parfaitement ! Un grand merci :D