本文实例讲述了PHP编程实现多维数组按照某个键值排序的方法。分享给大家供大家参考,具体如下:
实现对多维数组按照某个键值排序的两种解决方法([code]array_multisort[/code]和[code]array_sort[/code]):
[b]第一种:[/b]
[code]array_multisort()[/code]函数对多个数组或多维数组进行排序。
//对数组$hotcat按照count键值大小降序进行排序;
$hotcat =array(
array('1501'=>array('catid'=>'1546','catname'=>'数组排序 一级','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'数组排序二级','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'数组排序 三级','count'=>'588'))
);
//提取列数组;
foreach ($hotcat as $key => $val) {
$tmp[$key] = $row['username'];
}
array_multisort($tmp,SORT_DESC,$hotcat);此处对数组进行降序排列;SORT_DESC按降序排列
[b]第二种:[/b]
自定义方法[code]array_sort()[/code]进行排序
//指定数组以$keys键值排序
function array_sort($array,$keys,$type='asc'){
//$array为要排序的数组,$keys为要用来排序的键名,$type默认为升序排序
$keysvalue = $new_array = array();
foreach ($array as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $array[$k];
}
return $new_array;
}
$hot_cat = array_sort($hot_cat,'count','desc'); //此处对数组进行降序排列
图一:
[img]http://files.jb51.net/file_images/article/201704/201742790634489.jpg?20173279105[/img]
图二:
[img]http://files.jb51.net/file_images/article/201704/201742791018055.jpg?201732791156[/img]
[b]温馨提醒:[/b]由上图可知第一种方法有个弊端,如果你的数组如果是字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。所以当数组排序之后并且需要保留之前的所有键名的话,那就推荐使用第二种方法.
[b]PS:这里再为大家推荐2款比较实用的相关在线排序工具供大家参考使用:[/b]
[b]在线中英文根据首字母排序工具:
[/b][url=http://tools.jb51.net/aideddesign/zh_paixu]http://tools.jb51.net/aideddesign/zh_paixu[/url]
[b]在线文本倒序翻转排序工具:
[/b][url=http://tools.jb51.net/aideddesign/flipped_txt]http://tools.jb51.net/aideddesign/flipped_txt[/url]
更多关于PHP相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/623.htm]PHP数组(Array)操作技巧大全[/url]》、《[url=http://www.1sucai.cn/Special/47.htm]php字符串(string)用法总结[/url]》、《[url=http://www.1sucai.cn/Special/168.htm]php常用函数与技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/196.htm]PHP错误与异常处理方法总结[/url]》、《[url=http://www.1sucai.cn/Special/348.htm]PHP基本语法入门教程[/url]》、《[url=http://www.1sucai.cn/Special/43.htm]php面向对象程序设计入门教程[/url]》、《[url=http://www.1sucai.cn/Special/84.htm]php+mysql数据库操作入门教程[/url]》及《[url=http://www.1sucai.cn/Special/231.htm]php常见数据库操作技巧汇总[/url]》
希望本文所述对大家PHP程序设计有所帮助。