Как ограничить вывод из Json?

93
04 сентября 2021, 03:40

Получаю информацию из json

for ($i = 0; $i <= 10; $i++) {
    if ( $response{$i}["myprice"]["currency"] == 'RUR' ) {
print $response{$i}["myprice"]["total"] .'<br />';
print $response{$i}["title"] .'<br />';
    }
}

Если в ответе меньше 10 позиций, получаю ошибку

Notice: Undefined offset: 10 in

Как выводить только существующее кол-во позиций но не более заданного?

Спасибо!

Answer 1

для таких ситуаций в PHP есть цикл foreach()

foreach($response as $item){
    print $item["myprice"]["total"] .'<br />';
    print $item["title"] .'<br />';
}

UPDATE:

чтоб вывести первые 10 из 20 записей:

foreach($response as $key=>$item){
    if($key==10){ break; }
    print $item["myprice"]["total"] .'<br />';
    print $item["title"] .'<br />';
}

чтоб вывести последние 10 из 20 записей:

foreach($response as $key=>$item){
    if($key<10){ continue; }
    print $item["myprice"]["total"] .'<br />';
    print $item["title"] .'<br />';
}

чтоб вывести 10 из 30 записей после десятой:

foreach($response as $key=>$item){
    if($key<10){ continue; }
    if($key==20){ break; }
    print $item["myprice"]["total"] .'<br />';
    print $item["title"] .'<br />';
}
READ ALSO
Как отловить проблему связанную с mysql?

Как отловить проблему связанную с mysql?

В общем есть сайт на поддержке, и сайт каждый день +- в одно и тоже время сайт зависает и не отвечает на запросы в течении 6-10 минут(график с сервиса...

199
Почему возвращает 0 записей php ldap?

Почему возвращает 0 записей php ldap?

подскажите, почему при таком подключении выдает 0 записей, хотя на сервере есть записи

143
Сравнение двух массивов на php

Сравнение двух массивов на php

Есть два массива

282
Использование where в связях Laravel

Использование where в связях Laravel

У меня есть 2 таблицы Table Category id name page_id 1 Happy 1 2 Luck 2

162