在现有阵列上创建分页

时间:2019-06-07 11:30:07

标签: php pagination

我只有一个项目阵列,我想创建一些分页链接。不幸的是,我无法设置要在mqin查询中返回的项目数,因此我总是不得不处理整个数组。

[0] => Array
    (
        [key] => value
        [key] => value
    )

[1] => Array

    (
        [key] => value
        [key] => value
    )

让我们说阵列中有大约100个零件,我想一次显示9个零件。我正在尝试以下内容:

$pagenum = $_GET['pagenum'];
$i = 1; 
foreach $array as $key => $a{
 //do some html 
 $i++;  
 if($i > 9){break;}
}

$pagenumUp = $pagenum +1;
$pagenumDown = $pagenum -1;

<a href="?pagenum=<?php echo $pagenumUp; ?>">Next</a>
<a href="?pagenum=<?php echo $pagenumDown; ?>">Prev</a>

我坚持要找到一种方法来设置根据索引执行代码的位置。因此,如果Im在第一页上,则索引应该在0到8之间运行。如果im在第二页上,它应该在9到17之间运行,等等。

我认为也许要根据页码检查某种数字数组,但这必须是动态的。

我将暂时有条件地显示下一个和上一个,并在以后找出。

1 个答案:

答案 0 :(得分:0)

要加入一部分(或切片)或阵列,请使用array_slice并将其参数定义为:

$pageSize = 9;
$startPosition = ($_GET['pagenum'] - 1) * $pageSize;
$slice = array_slice(
    $fullArray,
    $startPosition,
    $pageSize
);

要将数组分成多个部分(或),请使用array_chunk

$pageSize = 9;
$chunks = array_chunk(
    $fullArray,
    $pageSize
);
// after that you can get required chunk by index - $chunks[0], $chunks[1], etc