php二维数组排序降序,PHP二维数组排序 array_multisort
这篇文章主要介绍的内容是关于PHP二维数组排序 array_multisort,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
对2维数组或者多维数组排序是常见的问题,在PHP中我们有个专门的多维数组排序函数,下面简单介绍下:array_multisort(array1,sorting order, sorting type,array2,array3..) 是对多个数组或多维数组进行排序的函数。array1必需。规定输入的数组。
sorting order可选。规定排列顺序。可能的值是 SORT_ASC 和 SORT_DESC。
sorting type可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2可选。规定输入的数组。
array3可选。规定输入的数组。
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
随后可以指定排序的类型:
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列<?php
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){
if(is_array($arrays)){
foreach ($arrays as $array){
if(is_array($array)){
$key_arrays[] = $array[$sort_key];
}else{
return false;
}
}
}else{
return false;
}
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
return $arrays;
}
$person = array(
array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),
array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150),
array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156),
array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190),
array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200),
array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110),
array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170)
);
var_dump($person);
$person = my_sort($person,'name',SORT_ASC,SORT_STRING);
var_dump($person);
$person = my_sort($person,'weight');
var_dump($person);
?>
结果如下:array (size=7)
0 =>
array (size=4)
'id' => int 1
'name' => string 'fj' (length=2)
'weight' => int 100
'height' => int 180
1 =>
array (size=4)
'id' => int 2
'name' => string 'tom' (length=3)
'weight' => int 53
'height' => int 150
2 =>
array (size=4)
'id' => int 3
'name' => string 'jerry' (length=5)
'weight' => int 120
'height' => int 156
3 =>
array (size=4)
'id' => int 4
'name' => string 'bill' (length=4)
'weight' => int 110
'height' => int 190
4 =>
array (size=4)
'id' => int 5
'name' => string 'linken' (length=6)
'weight' => int 80
'height' => int 200
5 =>
array (size=4)
'id' => int 6
'name' => string 'madana' (length=6)
'weight' => int 95
'height' => int 110
6 =>
array (size=4)
'id' => int 7
'name' => string 'jordan' (length=6)
'weight' => int 70
'height' => int 170
array (size=7)
0 =>
array (size=4)
'id' => int 4
'name' => string 'bill' (length=4)
'weight' => int 110
'height' => int 190
1 =>
array (size=4)
'id' => int 1
'name' => string 'fj' (length=2)
'weight' => int 100
'height' => int 180
2 =>
array (size=4)
'id' => int 3
'name' => string 'jerry' (length=5)
'weight' => int 120
'height' => int 156
3 =>
array (size=4)
'id' => int 7
'name' => string 'jordan' (length=6)
'weight' => int 70
'height' => int 170
4 =>
array (size=4)
'id' => int 5
'name' => string 'linken' (length=6)
'weight' => int 80
'height' => int 200
5 =>
array (size=4)
'id' => int 6
'name' => string 'madana' (length=6)
'weight' => int 95
'height' => int 110
6 =>
array (size=4)
'id' => int 2
'name' => string 'tom' (length=3)
'weight' => int 53
'height' => int 150
array (size=7)
0 =>
array (size=4)
'id' => int 2
'name' => string 'tom' (length=3)
'weight' => int 53
'height' => int 150
1 =>
array (size=4)
'id' => int 7
'name' => string 'jordan' (length=6)
'weight' => int 70
'height' => int 170
2 =>
array (size=4)
'id' => int 5
'name' => string 'linken' (length=6)
'weight' => int 80
'height' => int 200
3 =>
array (size=4)
'id' => int 6
'name' => string 'madana' (length=6)
'weight' => int 95
'height' => int 110
4 =>
array (size=4)
'id' => int 1
'name' => string 'fj' (length=2)
'weight' => int 100
'height' => int 180
5 =>
array (size=4)
'id' => int 4
'name' => string 'bill' (length=4)
'weight' => int 110
'height' => int 190
6 =>
array (size=4)
'id' => int 3
'name' => string 'jerry' (length=5)
'weight' => int 120
'height' => int 156
这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。
相关推荐:
php二维数组排序降序,PHP二维数组排序 array_multisort相关推荐
- php降序怎写,php 数组排序(升序、降序及相关问题)
php 数组排序(升序.降序及相关问题),供大家参考. 先来普通下知识,在php中快速创建数组可以用函数range(),有关range的使用方法,请参考链接: http://www.jquerycn. ...
- C++ 对二维数组排序 升序 降序
点击查看更多通信与专业知识 今天在做下面这道题的时候糊涂了,把二维数组的排序做错了. 题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序).每个 peo ...
- Java实现TreeMap集合的排序:Key键的升序与降序、Value值的排序
Java 提供的 Map 接口常用的实现类有 HashMap 和 TreeMap.HashMap 类实现的 Map 集合对于添加和删除映射关系效率更高.HashMap 通过哈希码对其内部的映射关系进行 ...
- js 数组对象sort()排序(升序降序)
升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...
- js:数组对象按key值进行升序降序排序
1.先定义一个数组对象 let arr=[{name:'李欣',age:'18'},{name:'王钊',age:'15'},{name:'李雪',age:'20'},{name:'李逍遥',age: ...
- Java黑皮书课后题第8章:**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示
**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中.1行包含7列,记录了一个雇员7天的工作小时数.编写一个程序,按照总工时降序显示 题目 题目描述 破题 代码 ...
- C 二维数组存入学生成绩 ,并求平均分,对平均分降序排序
**C 语言萌新一个,请各位大佬善待....**题目: 十位同学成绩为 t1,t2,t3,t4 ,键盘存入数据,求平均分,再降序排序.代码如下: #include<stdio.h> mai ...
- php 二维数组 第一个,php二维数组排序几种方法
二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法. 有时 ...
- 二维数组排序算法php,phpsort_php二维数组排序方法
摘要 腾兴网为您分享:php二维数组排序方法,中信金通,掌上公交,云南移动,悟空识字等软件知识,以及电脑鼠标连点器,趣赚赚,顺广传媒,佳能lide220,口袋校园,放放影院,手机炒股软件,建行商城,平 ...
最新文章
- 计算机网络总结之计算机概述
- 信息系统项目管理师优秀论文:论信息系统范围管理
- Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)
- php获取jsp的session的值,在JSP或Servlet中获取session数量
- 1054: 猴子吃桃
- 图解FFMPEG打开媒体的函数avformat_open_input
- vim编辑器删除空行
- 计算机设计大赛材料准备讲解
- 学嵌入式需要报培训班吗?
- 邮件服务器匿名,ProtonMail最安全且匿名邮箱免费服务
- Typescript中定义接口(interface)
- 还搞不懂JVM?这一篇教你JVM从入门到入魔,全篇干货满满!
- 凡事都要追求公平?还真不一定!
- 相机拍摄单色模式MOV视频可以恢复彩色吗?
- 机器学习完整项目实战附代码(一):探索型数据分析+特征工程+建模+报告
- [转]社区运营必读之天涯志
- Ceisum加载天地图(矢量、影像)
- Antares效果器插件合集 – Antares Bundle + Auto-Tune Pro 9 WiN
- 商业软件的注册码激活码的实现方法及代码示例(收藏备用)
- 台大林轩田机器学习技法完全解读