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']);

return $page_data;

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值