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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
php 强制下载文件实现代码
Oct 28 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
PHP实现获取中英文首字母
Jun 19 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
php微信公众号开发之现金红包
Apr 16 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
js几个验证函数代码
2010/03/25 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
利用Python爬取可用的代理IP
2016/08/18 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
python numpy实现rolling滚动案例
2020/06/08 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
自荐信的基本格式
2014/02/22 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
国庆阅兵观后感
2015/06/15 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers