Пагинация из массива многомерного массива - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю над этим приложением ussd, которое выполнит вызов API для указания URL-адреса c, вернет ответ пакетов для конкретной компании, для которой я разрабатываю, а затем декодирую ответ, чтобы получить массив. Дело в этом массиве, я хочу отображать на каждой странице 4 одновременно. Я смог отобразить на первой странице первые 4 пакета, но когда я перехожу на следующую страницу, все еще отображаются те же пакеты, что и для страницы 1. Всего 30 пакетов. Вот что я сделал:

function getProducts(){
$productPage = 1;


$url = GlicoConfig::Packages_API_URL;
$Packages=$this->post_1($url , array('plan_code'=>30,'premium'=>50,'client_name'=>"John",'mobile_no'=>"02324348",'dob'=>"1990-07-01",'email'=>"kmaster@gmail.com"), $hdr);  //call to api

$decode=json_decode($Packages,true);

$displayText = "";

$itemsPerPage = 4;
$itemsPerPageCount = 0;

// Check the item index to display
$displayItems = $this->productPage * $itemsPerPage;

foreach($decode['packages'] as $i => $package)
{
    $itemsPerPageCount++;

// Display items based on the index and show the 3 items before the index
    if($i < $displayItems && $i >= ($displayItems-4)){
     $displayText .= $i.": ".$package['description']."\n";
      }

    if($itemsPerPageCount == $itemsPerPage){
        $this->productPage++;
        $itemsPerPageCount = 0;
        break;
       }
    }

     return $displayText;
}
...