Выборка JSON в цикле.

1 234
MK
На сайте с 18.08.2005
Offline
126
#31

Как то так


$j = json_decode(
'{"BTC_USD":{"buy_price":"9800","sell_price":"9810","last_trade":"9800","high":"9999.99999999","low":"8750","avg":"9369.77935875","vol":"1434.62464539","vol_curr":"14059321.52483837","updated":1520672039},"BTC_EUR":{"buy_price":"8050.0131362","sell_price":"8122.626233","last_trade":"8084.66","high":"8236.94144169","low":"7223.67016301","avg":"7736.54522569","vol":"353.79896428","vol_curr":"2860344.33457491","updated":1520672045},"BTC_RUB":{"buy_price":"519753.64304208","sell_price":"521986.4735199","last_trade":"520370","high":"527800","low":"480045","avg":"505195.68830297","vol":"931.33163086","vol_curr":"484637040.75238693","updated":1520672043}}',
1);

$t = [ "buy_price" =>'текущая максимальная цена покупки',
"sell_price"=>'текущая минимальная цена продажи',
"last_trade"=>'цена последней сделки',
"high" =>'максимальная цена сделки за 24 час',
"low" =>'минимальная цена сделки за 24 часа',
"avg" =>'средняя цена сделки за 24 часа',
"vol" =>'объем всех сделок за 24 часа',
"vol_curr" =>'сумма всех сделок за 24 часа',
"updated" =>'дата и время обновления данных'
];
$s = '<table>';
$th = '<tr><th>' . implode('</th><th>', $t) . '</th><tr>';
$ct = count($t);
$s.=$th;
foreach($j as $k=>$v) {
if(is_array($v)) {
$tr = array_combine(array_keys($t), array_map('ceil', $v));
$tr['updated'] = date('Y-m-d H:i:s', $tr['updated']);

$s.='<tr><td colspan="'.$ct.'"><h3>'.$k.'</h3></td></tr>';
$s.='<tr><td>'. implode('</td><td>', $tr) . '</td></tr>';
}
}
$s.= '</table>';
echo $s;
нет
seosniks
На сайте с 13.08.2007
Offline
389
#32
LEOnidUKG:
Можно:

/ru/forum/comment/15513663

Хорошо, изложу вопрос по другому.

Данный код из этого примера /ru/forum/comment/15513786

выведет все имеющиеся в файле JSON данные.

как получить этим кодом только нужные пары, при этом чтоб минимально изменив код .

Это возможно?

MK
На сайте с 18.08.2005
Offline
126
#33
seosniks:

как получить этим кодом только нужные пары, при этом чтоб минимально изменив код .

Просто:


$value = json_decode($res, true);
$needed= array('BTC_USD','BTC_EUR');
$row = '';
foreach($needed as $k) {
if(isset($value[$k])) {
$v = $value[$k];
.....

Вам тут покопаться нужно.☝

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий