Vous vous demandez pourquoi mon code PHP n'affichera pas toutes les "valeurs" des "valeurs" dans les données JSON:
$user = json_decode(file_get_contents($analytics));
foreach($user->data as $mydata)
{
echo $mydata->name . "\n";
}
foreach($user->data->values as $values)
{
echo $values->value . "\n";
}
Le premier foreach fonctionne bien, mais le second renvoie une erreur.
{
"data": [
{
"id": "MY_ID/insights/page_views_login_unique/day",
"name": "page_views_login_unique",
"period": "day",
"values": [
{
"value": 1,
"end_time": "2012-05-01T07:00:00+0000"
},
{
"value": 6,
"end_time": "2012-05-02T07:00:00+0000"
},
{
"value": 5,
"end_time": "2012-05-03T07:00:00+0000"
}, ...
Vous souhaitiez peut-être faire ce qui suit:
foreach($user->data as $mydata)
{
echo $mydata->name . "\n";
foreach($mydata->values as $values)
{
echo $values->value . "\n";
}
}
Vous devez lui indiquer quel index dans data
utiliser, ou faire une double boucle dans tout.
Par exemple, pour obtenir les valeurs du 4ème index dans le tableau extérieur:
foreach($user->data[3]->values as $values)
{
echo $values->value . "\n";
}
Pour passer par tout:
foreach($user->data as $mydata)
{
foreach($mydata->values as $values) {
echo $values->value . "\n";
}
}
$user->data
est un tableau d'objets. Chaque élément du tableau a une propriété name
et value
(ainsi que d'autres).
Essayez de mettre le 2e foreach
à l'intérieur du 1er.
foreach($user->data as $mydata)
{
echo $mydata->name . "\n";
foreach($mydata->values as $values)
{
echo $values->value . "\n";
}
}