@GRO24

Как вывести данные с массива?

Получаю JSON Ответ
{
    "result": {
        "Random ItemName": [{
            "user": "user1",
            "time_upd": "2020-12-09 12:25:03",
        }, {
            "user": "user2",
            "time_upd": "2020-12-09 12:25:03",
        }, {
            "user": "user3",
            "time_upd": "2020-12-09 12:25:03",
        },

Прогнал через json_decode
Не могу понять как добраться до содержимого через $data['result'].. не получается, ибо переменное название массива

Как обратится к result[Random ItemName][user] ?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
$json = '{
    "result": {
        "Random ItemName": [
            {
                "user": "user1",
                "time_upd": "2020-12-09 12:25:03"
            }, {
                "user": "user2",
                "time_upd": "2020-12-09 12:25:03"
            }, {
                "user": "user3",
                "time_upd": "2020-12-09 12:25:03"
            }
        ]
    }
}';
$data = json_decode($json, true);
$i = 0; // меняется в цикле
$user_name = $data['result']['Random ItemName'][$i]['user'];
$time_upd = $data['result']['Random ItemName'][$i]['time_upd'];

Если имеется в виду, что «Random ItemName» может быть разным, то:
$user_name = $data['result'][array_key_first($data['result'])][$i]['user'];
$time_upd = $data['result'][array_key_first($data['result'])][$i]['time_upd'];

Если же блоков «Random ItemName» много:
foreach ($data['result'] as $arrayKey => $arrayValue) {
    foreach ($arrayValue as $arraySubvalue) {
        $user_name = $arraySubvalue['user'];
        $time_upd = $arraySubvalue['time_upd'];
        // …
    }
}

И да, в исходном JSON синтаксическая ошибка — после значения времени запятая не нужна.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Frantick
Программист
array_shift
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
В цикле.
Все операции с массивами всегда производятся в цикле.
самым удобным циклом в РНР является foreach
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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