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 和 MySQL 时区的一点总结
Mar 26 PHP
php getsiteurl()函数
Sep 05 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
PHP array 的加法操作代码
Jul 24 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
php中yii框架实例用法
Dec 22 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
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
详解vue axios二次封装
2018/07/22 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
python实现八大排序算法(2)
2017/09/14 Python
名片管理系统python版
2018/01/11 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
python实现PCA降维的示例详解
2020/02/24 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
上海奥佳笔试题面试题
2016/11/16 面试题
实体的生命周期
2013/08/31 面试题
小学生操行评语
2014/04/22 职场文书
三问三解心得体会
2014/09/05 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年林业工作总结
2015/05/14 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL