/**
* 數組分頁函數 核心函數 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']);
*