梅开二度,亦无一度好
欢迎光临一度好
更多>> PHP程序设计
PHP关于二维或多维数组排序函数 array_multisort 的示例解析
来源:一度好    发布时间:2017-08-08 17:15:59    访问量:1653
内容简介 关于PHP对多维数组的排序,比如对二维数组的排序,本身内置的有一个排序函数,那就是 array_multisort。

关于PHP的多维数组排序函数 array_multisort 的用法,下面举例说明。


假设有两个表:文章表arc,评论表message,两个表的字段如下:

arc表字段:arc_id, title, addtime

message表字段:message_id, arc_id, content, addtime

需求:将文章表按评论数从多至少降序排列。

//通过编写sql检索语句,对文章表按id降序排列,得到的数据如下:
//(需要说明的是,评论数num的值,是从评论表中根据关联的arc_id获取的)
$data = array(
	array('arc_id'=>'5','title'=>'FFFFF','num'=>'3'),
	array('arc_id'=>'4','title'=>'EEEEE','num'=>'9'),
	array('arc_id'=>'3','title'=>'CCCCC','num'=>'32'),
	array('arc_id'=>'2','title'=>'BBBBB','num'=>'3'),
	array('arc_id'=>'1','title'=>'AAAAA','num'=>'20'),
);
//可通过如下代码查看:
print_r($data);

1.jpg

//下面利用 array_multisort 函数,对数据按评论数num的值,降序排列
//排序开始
foreach($data as $k => $v){
	$sort_id_desc[$k] = $v['arc_id']; //按id降序
	$sort_num_desc[$k] = $v['num']; //按num降序
}
//按num降序排列,num相同时,按id降序排列
// SORT_DESC 降序,  SORT_ASC 升序
array_multisort($sort_num_desc, SORT_DESC, $sort_id_desc, SORT_DESC, $data);
//可通过如下代码查看:
print_r($data);

2.jpg


(编辑:一度好)
评论列表
暂时没有相关记录
发表评论
昵 称: *
邮 箱: *
验证码: * captcha 看不清?点击换一张
点击排行榜
首页 / 设为主页 / 加入收藏 / 关于本站 / 友情链接 / WAP版