PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】


Posted in PHP onApril 27, 2017

本文实例讲述了PHP编程实现多维数组按照某个键值排序的方法。分享给大家供大家参考,具体如下:

实现对多维数组按照某个键值排序的两种解决方法(array_multisortarray_sort):

第一种:

array_multisort()函数对多个数组或多维数组进行排序。

//对数组$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按降序排列

第二种:

自定义方法array_sort()进行排序

//指定数组以$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'); //此处对数组进行降序排列

图一:

PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】

图二:

PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】

温馨提醒:由上图可知第一种方法有个弊端,如果你的数组如果是字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。所以当数组排序之后并且需要保留之前的所有键名的话,那就推荐使用第二种方法.

PHP 相关文章推荐
用PHP创建PDF中文文档
Oct 09 PHP
PHP初学者头疼问题总结
Oct 09 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
解析php开发中的中文编码问题
Aug 08 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 #PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 #PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 #PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 #PHP
php编程实现简单的网页版计算器功能示例
Apr 26 #PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 #PHP
PHP中时间加减函数strtotime用法分析
Apr 26 #PHP
You might like
松下Panasonic RF-B65电路分析
2021/03/02 无线电
PHP的一个基础知识 表单提交
2011/07/04 PHP
php中Smarty模板初体验
2011/08/08 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
用pycharm开发django项目示例代码
2018/10/24 Python
Python中的集合介绍
2019/01/28 Python
Python实现结构体代码实例
2020/02/10 Python
python实现批处理文件
2020/07/28 Python
中学生期末评语
2014/02/03 职场文书
人事经理岗位职责
2014/04/28 职场文书
学前班评语大全
2014/05/04 职场文书
师范生见习报告
2014/10/31 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS