有分表的数据,需要做翻页管理,当时是做了按年查询的。其实换成其他的后缀或者前缀也一样
/* 获取每年所需查询的记录
* @param aray $yearNum 每年包含数量 ['2019'=>20,'2018'=>19]
* @param int $page 页数
* @param int $size 记录数
*/
function getYearData($yearNum,$page,$size){
$passNum = ($page-1)*$size; // 已查询的记录数
$retData = [];
foreach($yearNum as $year=>$num){
if($size <= 0) continue; // 满足当前所需要的记录数
if($num >= $passNum){
// 有剩余可查询数据
if($num != $passNum){
$searchNum = 0;
// 剩余数据是否满足查询数量
if(($num-$passNum) >= $size){
$searchNum = $size;
$size = 0;
}else{
// 减少需要查询的数量
$searchNum = $num-$passNum;
$size -= $searchNum;
}
$retData[] = array(
'year' => $year,
'start' => $passNum,
'end' => $searchNum
);
}
$passNum = 0;
}else{
$passNum = $passNum - $num;
}
}
return $retData;
}
版权声明:本文为tqy982012700原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。