Вопрос по json, php – Разбор массива JSON с помощью PHP foreach

19

Хотите знать, почему мой код PHP не будет отображать все & quot; значение & quot; из "Значения" в данных 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-> gt; данные выглядят как массив [0]; ToddN
В чем ошибка? Скажите нам, что на выходе. Jonathan M
Является$user->data массив? Потому что вы идете через это с foreach. Jonas Schwabe

Ваш Ответ

3   ответа
4

$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";
    }
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded ToddN
6

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";
    }

}   
40

foreach($user->data as $mydata)

    {
         echo $mydata->name . "\n";
         foreach($mydata->values as $values)
         {
              echo $values->value . "\n";
         }
    }        
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded ToddN
Error: User Rate Limit Exceeded

Похожие вопросы