php简单分页类实现方法

Original 2017-02-07 14:48:30 360
abstract:本文实例讲述了php简单分页类实现方法。分享给大家供大家参考。具体如下:class PageModel {       /**       * 获取分页数组       * @pa

本文实例讲述了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简单分页类实现方法请关注PHP中文网(m.sbmmt.com)其他文章!

Release Notes

Popular Entries