Разбор массива JSON с PHP foreach

Интересно, почему мой 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"; } }