CakePHP:使用数组自定义分页

时间:2017-03-16 15:42:01

标签: php arrays pagination cakephp-3.0

我正在尝试在CakePHP中对数组进行分页。该数组是从JSON文件中提取的,因此不使用任何数据库查询或任何数据库查询。我试图坚持CakePHP的功能,以确保我不会编写无用的代码。我一直在四处寻找,但在我的问题上找不到任何答案。

数组如下:

array(161) { 
    [0]=> array(8) { 
        ["id"]=> int(589) 
        ["status"]=> string(7) "running" 
        ["threads"]=> int(12) 
        ["create_time"]=> float(1487712882.42) 
        ["memory_usage_precent"]=> float(11.0328674316)             
        ["cpu_usage_precent"]=> int(62) 
        ["cwd"]=> string(1) "/"   
        ["process_name"]=> string(16) "plugin-container" 
    }
}

这是数组中161行的一行。如何使用CakePHP的方法对此进行分页?

1 个答案:

答案 0 :(得分:1)

以下是从Array

进行分页的示例

第1步 - PHP数据阵列:

$data = [
  [
    "id"=> 0,
    "status"=> "running"
  ],[
    "id"=> 1,
    "status"=> "running"
  ],
  #More Arrays ...
];

第2步 - 准备数据[计算]

$TotalDatas     = count($data); #Total number of Data in Array
$StartFrom      = 0; #Start from Array index
$DisplayLimit   = 2; #Limit the result per page
$CurrentPage    = isset($_GET['page'])? $_GET['page'] : 0; #Get the page number value from URL

$StartFrom      = $CurrentPage*$DisplayLimit; #Update the Array index by calculating Page number and Limit

第3步 - 使用循环显示数据:

for($i=$StartFrom; $i<$StartFrom+$DisplayLimit; $i++){ #Increase the Array index by Limit
  if($i>=$TotalDatas){
    continue; #Break Or put some message, Because no more Data in Array
  }
  var_dump($data[$i]);
}

浏览网址,如 - localhost?page={PAGE_MUNBER_HERE}

示例:

localhost?page=3
  

注意:以上代码是基本分页的简单示例。