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使用者状态管理功能的应用
Oct 09 PHP
如何把PHP转成EXE文件
Oct 09 PHP
PHP中文汉字验证码
Apr 08 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
PHP正确解析UTF-8字符串技巧应用
Nov 07 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 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程序中的常见漏洞进行攻击
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
js实现简单的打印表格
2020/01/15 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
学生个人求职自荐信格式
2013/09/23 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python