更多>>博客 Blog

PHP关于二维或多维数组排序函数 array_multisort 的示例解析

关于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
看不清?点击图片换一张
CopyRight © 一度好   设计制作:溪来鸿往
邮箱:yiduweb@163.com   微信:yiduhao918