实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)
2023-09-11 14:22:42 时间
实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort):
第一种:array_multisort()函数对多个数组或多维数组进行排序。
//对数组$hotcat按照count键值大小降序进行排序;
$hotcat =array(
array('1501'=>array('catid'=>'1546','catname'=>'续梦PHP 一级','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'续梦PHP 二级','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'续梦PHP 三级','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'); //此处对数组进行降序排列
温馨提醒:第一种方法有个弊端,如果你的数组如果是字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。所以当数组排序之后并且需要保留之前的所有键名的话,那就推荐使用第二种方法:
相关文章
- C#动态对象(dynamic)示例(实现方法和属性的动态)
- js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
- Java判断数据类型及方法是否相同
- Java中的clone方法有什么作用
- Java replace() 方法
- 归并排序,树状数组 两种方法求逆序对
- 定义一个方法,功能是找出一个数组中第一个只重复出现2次的元素,没有则返回null。例如:数组元素为 [1,3,4,2,6,3,4,2,3],重复两次的元素为4和2,但是元素4排在2的前面,则结果返回
- Python 爬取网页数据的两种方法
- 数组去重的方法
- 利用C++的std::vector定义OpenCV的MAT数组的方法
- 37 Java基础 总结 完结篇 知识串讲 Java语言初识 基础语法 流程控制 方法 数组 面向对象 内部类 异常 常用类 集合框架 IO流 多线程 网络编程 GUI 注解
- C++中创建二维数组的几种方法
- C#调用DLL的几种方法
- 扩展方法的几个实例,扩展基本类型、接口、通过反射让扩展方法使用私有成员等
- WTF!! Vue数组splice方法无法正常工作
- 【HMS Core】使用图形引擎服务点击一次会多次触发RenderView的方法addOnTouchEventListener
- java数组的拷贝四种方法:for、clone、System.arraycopy、arrays.copyof
- 系统可扩展设计方法之消息队列
- SwiftUI Swift基础之Swift 数组的多种方法(教程含源码)
- Java实现把两个数组合并为一个的方法总结
- 数组的some方法可以用return true来终止循环return false 跳过本次循环
- webpack打包压缩工具的使用方法
- 小知识随手记(九):兄弟选择器(~和+)区别、forEach无法return和break的替换方法、html结构转为markdown语法、离开当前页面提示、利用set及解构数组去重、设置函数必传参数
- 详解数组中的reduce方法
- C++中动态申请二维数组并释放方法
- HDU3572Task Schedule(最大流 ISAP比較快)建图方法不错
- iOS - 去除数组中重复数据的几种方法
- JavaScript引用类型之Array数组的栈方法与队列方法