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.ini中文版(2)
Oct 09 PHP
简单的PHP留言本实例代码
May 09 PHP
PHP中::、->、self、$this几种操作符的区别介绍
Apr 24 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
php简单获取目录列表的方法
Mar 24 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
yii用户注册表单验证实例
Dec 26 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 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
php 动态多文件上传
2009/01/18 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php swoft框架实例用法
2020/12/22 PHP
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
Python库urllib与urllib2主要区别分析
2014/07/13 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
如何用Python合并lmdb文件
2018/07/02 Python
python实现简易动态时钟
2018/11/19 Python
Django框架模板介绍
2019/01/15 Python
python 多个参数不为空校验方法
2019/02/14 Python
Django如何将URL映射到视图
2019/07/29 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
视图的作用
2014/12/19 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
护理自荐信范文
2013/10/05 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
教师年度个人总结
2015/02/11 职场文书
家属慰问信
2015/02/14 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书