Интересно, почему мой PHP-код не отображает все значения «Значения» в данных 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"; }
Первый foreach работает отлично, а второй выдает ошибку.
{ "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" }, ...
Возможно, вы захотите сделать следующее:
foreach($user->data as $mydata) { echo $mydata->name . "\n"; foreach($mydata->values as $values) { echo $values->value . "\n"; } }
Вам нужно указать, какой индекс в data
использовать, или двойной цикл через все.
Например, чтобы получить значения в 4-м индексе во внешнем массиве .:
foreach($user->data[3]->values as $values) { echo $values->value . "\n"; }
Пройти все:
foreach($user->data as $mydata) { foreach($mydata->values as $values) { echo $values->value . "\n"; } }
$user->data
– это массив объектов. Каждый элемент массива имеет свойство name
и value
(а также другие).
Попробуйте поставить 2-й foreach
внутри 1-го.
foreach($user->data as $mydata) { echo $mydata->name . "\n"; foreach($mydata->values as $values) { echo $values->value . "\n"; } }