我有一个多维数组,如下所示:
Array
(
[results] => Array
(
[0] => Array
(
[hotel_code] => 15ad7a
[checkout] => 2018-04-26
[checkin] => 2018-04-24
[destination_code] => 1c6e0
[products] => Array
.... etc ....
)
[1] => Array
(
[hotel_code] => 193c6c
[checkout] => 2018-04-26
[checkin] => 2018-04-24
[destination_code] => 1c6e0
[products] => Array
.... etc ....
)
想要创建一个简单的结果分页,一次从数组中取出15条记录,通过以下代码我可以恢复前15条记录。
$i = 0;
foreach($data['results'] as $key=>$val){
$i++;
$selez_hotel_code = '' . $val['hotel_code'] . '';
if($i == 15) break;
}
现在,如何从阵列中获取接下来的15个值? 我试图直接从记录15开始foreach,设置如下
$i = 0;
foreach($data['results'][14]['hotel_code'] as $val){
$i++;
$selez_hotel_code = '' . $val . '';
if($i == 15) break;
}
但它不起作用。
答案 0 :(得分:3)
您可以使用for
循环来指定开始和结束:
$start = 15 ;
$length = 15 ;
$max = count($data['results']);
for ($idx = $start; $idx < $start + $length && $idx < $max; $idx++) {
$val = $data['results'][$idx]['hotel_code'] ;
$selez_hotel_code = $val ;
}
请注意,我添加了一项验证,以避免循环结果的最大值($idx < $max
)。
答案 1 :(得分:0)
您可以使用$_GET
进行分页。只有一个for
循环,如果设置则使用此参数,否则为0。像这样:
$page = isset($_GET['page']) ? intval($_GET['page']) : 0;
for ($i = $page; $i < ($page + 15); $i++) {
// $data['results'][$i] . . .
}
点击“下一页”或您正在使用的任何内容时,请设置page
参数