Как получить «случайно сформированное» значение json массива?

Есть массив вида
{"success":1,"return":
{
"236015091":{"status":0,"pair":"new","type":"one","amount":0.05,"rate":188.0},
"244806736":{"status":1,"pair":"old","type":"two","amount":0.3,"rate":25.0},
"244901138":{"status":0,"pair":"sold","type":"three","amount":30.5,"rate":0.7}
},
"stat":{"isSuccess":true,"serverTime":"00:00:00.0000564","time":"00:00:00.0426275","errors":null}}


Как в таком случае получить для каждого "массива"
Его имя - например 236015091?
Его значение элемента - например 236015091->pair (new)?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 3
@BorisKorobkov Куратор тега PHP
Web developer
json_decode + foreach
Ответ написан
Комментировать
AK-VoronM
@AK-VoronM
"Мало-мало программист"
Попробуйте вот так:
$arr = json_decode($json, true);
foreach ($arr['result'] as $k => $in_arr) {
    echo "Имя внутреннего элемента: {$k}<br>";
    echo "Перебор вложенных элементов:<br>";
    foreach ($in_arr as $in_k => $in_v) {
        echo "{$in_k} => {$in_v} ";
    }
    echo "<br>";
    echo "Только определенный элемент внутреннего массива:<br>";
    echo $in_arr['pair'], "<br>";
}

Если нужны только имена:
$arr = json_decode($json, true);
echo "<pre>";
var_dump(array_keys($arr['result']));
echo "</pre>";


Собственно вариант решения зависит от задачи.
Ответ написан
Комментировать
logpol32
@logpol32 Автор вопроса
$obj = json_decode($data,true);
foreach($obj as $obj_array)
{
echo $obj_array;
}

1,Array,Array

Возникают 2 проблемы.
1 Массивы разного уровня вложенности.
2 неизвестность имен массивов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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