Подтвердить что ты не робот

Разбор массива 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"
            }, ...
4b9b3361

Ответ 1

Возможно, вам захочется сделать следующее:

foreach($user->data as $mydata)

    {
         echo $mydata->name . "\n";
         foreach($mydata->values as $values)
         {
              echo $values->value . "\n";
         }
    }        

Ответ 2

Вам нужно указать, какой индекс в 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";
    }

}   

Ответ 3

$user->data - массив объектов. Каждый элемент массива имеет свойство name и value (а также другие).

Попробуйте поставить второй foreach внутри 1-го.

foreach($user->data as $mydata)
{
    echo $mydata->name . "\n";
    foreach($mydata->values as $values)
    {
        echo $values->value . "\n";
    }
}

Ответ 4

Я хочу декодировать json {"response_status_id": 0, "data": {"pan_required": 2, "receient_list": [{"channel_absolute": 0, "available_channel": 0, "account_type": "Bank Account", "ifsc_status": 1, "is_self_account": "0", "channel": 0, "is_imps_scheduled": 0, "receient_id_type": "acc_ifsc", "imps_inactive_reason": "", "enabled_channel": 0, "is_verified": 1, "bank": "Kotak Mahindra Bank", "is_otp_required": "0", "receient_mobile": "9999912345", "receient_name": "Selena Gomez", "ifsc": "KKBK0000731", "account": "1711650496", "pipe": {"3": {"pipe": 3, "status": 1}}, "receient_id": 10016249, "is_rblbc_recipient": 1}, {"channel_absolute": 0, "available_channel" ": 0," account_type ":" Банковский счет "," ifsc_status ": 1," is_self_account ":" 0 "," channel ": 0," is_imps_scheduled ": 0," receient_id_type ":" acc_ifsc "," imps_inactive_reason ": "", "allow_channel": 0, "is_verified": 1, "bank": "Kotak Mahindra Bank", "is_otp_required": "0", "receient_mobile": "9999912345", "имя-получателя": " Saurabh Mullick "," ifsc ":" KKBK0000731 "," account ":" 1711650495 "," pipe ": {" 3 ": {" pipe ": 3," status ": 1}}," receient_id ": 10016237, "is_rblbc_recipient": 1}, {"channel_absolute": 0, "available_channel": 0, "account_type": "Bank Account", "ifsc_status": 1, "is_self_account": "0", "channel": 0, " is_imps_scheduled ": 0," receient_id_type ":" acc_ifsc "," imps_inactive_reason ":" "," allow_channel ": 0," is_verified ": 1," bank ":" Kotak Mahindra Bank "," is_otp_required ":" 0 ", "receient_mobile": "9988776655", "имя-получателя": "RK LAKSHYKAR", "ifsc": "KKBK0000261", "account": "1711650492", "pipe": {"3": {"pipe": 3, " status ": 1}}," receient_id ": 10016107," is_rblbc_recipient ": 1}, {" channel_absolute ": 0," available_channel ": 0," account_type ":" Банковский счет "," ifsc_status ": 1," is_self_account " ":" 0 "," канал ": 0," is_imps_scheduled ": 0," receient_id_type ":" acc_ifsc "," imps_inactive_reason ":" "," allow_channel ": 0," is_verified ": 1," bank ":" Котак Махиндра Банк "," is_otp_re quired ":" 0 "," receient_mobile ":" 9837373637 "," имя-получателя ":" N Modi "," ifsc ":" KKBK0000731 "," account ":" 1711650493 "," pipe ": {" 3 ": { "pipe": 3, "status": 1}}, "receient_id": 10016099, "is_rblbc_recipient": 1}, {"channel_absolute": 0, "available_channel": 0, "account_type": "Bank Account", " ifsc_status ": 4," is_self_account ":" 0 "," channel ": 0," is_imps_scheduled ": 0," receient_id_type ":" acc_ifsc "," imps_inactive_reason ":" "," enabled_channel ": 0," is_verified ": 1, "банк": "Банк Махараштры", "is_otp_required": "0", "receient_mobile": "8108523181", "имя-получателя": "Кумар Саурабх", "ifsc": "MAHB0000001", "account": " 60249057649 "," pipe ": {" 3 ": {" pipe ": 3," status ": 1}}," receient_id ": 10015559," is_rblbc_recipient ": 1}, {" channel_absolute ": 0," available_channel ": 0, "account_type": "Bank Account", "ifsc_status": 4, "is_self_account": "0", "channel": 0, "is_imps_scheduled": 0, "receient_id_type": "acc_ifsc", "imps_inactive_reason": "", "enabled_channel": 0, "is_verified": 1, "bank": "Kotak Mahindra Bank", "is_otp_required": "0", "receient_mobile": "9971898237", "receient_name": "Kumar Saurabh", "ifsc": "KKBK0000731", " account ":" 1711650593 "," pipe ": {" 3 ": {" pipe ": 3," status ": 1}}," receient_id ": 10015373," is_rblbc_recipient ": 1}, {" channel_absolute ": 0, "available_channel": 0, "account_type": "Bank Account", "ifsc_status": 1, "is_self_account": "0", "channel": 0, "is_imps_scheduled": 0, "receient_id_type": "acc_ifsc", "imps_inactive_reason": "", "enabled_channel": 0, "is_verified": 0, "bank": "Банк Индии", "is_otp_required": "0", "receient_mobile": "9709224162", "имя-получателя": " Гаурав Маллик "," ifsc ":" BKID0004428 "," account ":" 442810110008428 "," pipe ": {" 3 ": {" pipe ": 3," status ": 1}}," receient_id ": 10013557, "is_rblbc_recipient": 1}], "Остальное_лимит_before_pan_required": 50000}, "response_type_id": 23, "сообщение": "Успех", "статус": 0}