有时候需要对数组进行按分页处理,之前的做法是计算出数组大小,按分页计算出偏移量,再从起始偏移量处开始遍历页大小个数据。现在不用这么麻烦了,原来PHP函数里有个现成的函数
array_chunk
可以配合我们实现对数组进行分页。
array_chunk
将一个数组分割成多个
说明
array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
示例代码
$page = isset($_GET['page'])?(int)$_GET['page']:1;
$pageSize = 3;
$arr = [1,2,3,4,5,6,7,8,9,10];
$totalPages = ceil(count($arr)/$pageSize);
$data = array_chunk($arr, $pageSize);
$msg = '';
$result = [];
if($page >= $totalPages) {
$msg = '没有更多数据啦!';
} else {
$result = $data[$page-1];
}
echo json_encode(['error'=>0, 'data'=>$result, 'msg'=>$msg]);
exit();
执行结果
总结
有时碰到对数组进行分页时,可以用该函数快速实现。