程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php二維數組分頁排序

php二維數組分頁排序

編輯:PHP綜合
/**
 * 數組分頁函數 核心函數 array_slice
 * 用此函數之前要先將數據庫裡面的所有數據按一定的順序查詢出來存入數組中
 * $list 分頁數據
 * $pageSize  每頁多少條數據
 * $currPage   當前第幾頁
 * $sort  排序規則;例:array('time'=>'desc')
 * $group 分組
 */
function array_page($list, $currPage, $pageSize = 10, $sort = null,$group=null) {
    global $pageSizepage; #定全局變量
    $page = (empty($currPage)) ? 1 : $currPage; #判斷當前頁面是否為空 如果為空就表示為第一頁面
    $start = ($page - 1) * $pageSize; #計算每次分頁的開始位置
    //排序
    if(!empty($sort)){
        $GLOBALS['sort'] =& $sort;#申明超全局變量
        unset($sort);
        uasort($list,function ($a,$b){
            global $sort;
            foreach($sort as $key => $val){
                if($a[$key] == $b[$key])    continue;
                return (($val == 'desc')?-1:1) * (($a[$key] < $b[$key]) ? -1 : 1);
            }
        });
    }
    $totals = count($list);
    //分組
    if(!empty($group)){
        $tem = array();
        foreach ($list as $val) {
            $tem[$val[$group]][] = $val;
        }
        unset($list);
        $list = $tem;
    }
    $pageSizepage = ceil($totals / $pageSize); #計算總頁面數
    $page_data = array();
    $page_data = array_slice($list, $start, $pageSize,$group ? true:false);
    unset($GLOBALS['sort']);
 
*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved