本文共 1118 字,大约阅读时间需要 3 分钟。
在做项目时分页是必不可少的一个功能,有些数据是第一次取出之后使用缓存存储这些数据,这样减少了读取数据库的次数,减少数据库压力,但是去除之后数组还是要分页显示的,接下来吾爱编程,就为大家分享一下数组排序:
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']);
return $page_data;
}
?>
转载地址:http://hznva.baihongyu.com/