php简单分页类实现方法
这篇文章主要介绍了php简单分页类实现方法,实例分析了php分页类的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下。
本文实例讲述了php简单分页类实现方法,分享给大家供大家参考,具体如下:
- class PageModel {
- /**
- * 获取分页数组
- * @param unknown $page 当前页面数
- * @param unknown $goodsCount 商品总数
- * @param unknown $pageLength 每个页面展示页面数
- */
- public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {
- //页面总数
- $allPageCount = ceil($goodsCount / $pageLength);
- //如果页面总是比长度短,设定页面长度为页面总数
- if ($allPageCount <= $pageCountLength) {
- $allPageCount = ceil($goodsCount / $pageLength);
- }
- //总页面数一页展示完
- if ($allPageCount <= $pageCountLength) {
- for ($i = 0; $i < $allPageCount; $i ++) {
- $arr[] = array('page' => $i + 1);
- }
- return $arr;
- }
- //前后的长度
- $halfLength = floor($pageCountLength / 2);
- //因为太小,所以放原来位置,左边
- if ($page <= $halfLength) {
- $arr = array();
- for ($i = 0; $i < $pageCountLength; $i ++) {
- $arr[] = array('page' => $i + 1);
- }
- return $arr;
- }
- //太大,只取到边缘,超出也只取到边缘
- if ($page > $allPageCount - floor($pageCountLength / 2)) {
- for ($i = -$pageCountLength; $i < 0; $i ++) {
- $arr[] = array('page' => $allPageCount + $i + 1);
- }
- return $arr;
- }
- //中间的数,把中间的取出来
- for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ++) {
- $arr[] = array('page' => $page + $i);
- }
- return $arr;
- }
- }
希望本文所述对大家的php程序设计有所帮助。