这篇文章主要介绍的内容是关于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相关推荐

  1. php降序怎写,php 数组排序(升序、降序及相关问题)

    php 数组排序(升序.降序及相关问题),供大家参考. 先来普通下知识,在php中快速创建数组可以用函数range(),有关range的使用方法,请参考链接: http://www.jquerycn. ...

  2. C++ 对二维数组排序 升序 降序

    点击查看更多通信与专业知识 今天在做下面这道题的时候糊涂了,把二维数组的排序做错了. 题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序).每个 peo ...

  3. Java实现TreeMap集合的排序:Key键的升序与降序、Value值的排序

    Java 提供的 Map 接口常用的实现类有 HashMap 和 TreeMap.HashMap 类实现的 Map 集合对于添加和删除映射关系效率更高.HashMap 通过哈希码对其内部的映射关系进行 ...

  4. js 数组对象sort()排序(升序降序)

    升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...

  5. js:数组对象按key值进行升序降序排序

    1.先定义一个数组对象 let arr=[{name:'李欣',age:'18'},{name:'王钊',age:'15'},{name:'李雪',age:'20'},{name:'李逍遥',age: ...

  6. Java黑皮书课后题第8章:**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示

    **8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中.1行包含7列,记录了一个雇员7天的工作小时数.编写一个程序,按照总工时降序显示 题目 题目描述 破题 代码 ...

  7. C 二维数组存入学生成绩 ,并求平均分,对平均分降序排序

    **C 语言萌新一个,请各位大佬善待....**题目: 十位同学成绩为 t1,t2,t3,t4 ,键盘存入数据,求平均分,再降序排序.代码如下: #include<stdio.h> mai ...

  8. php 二维数组 第一个,php二维数组排序几种方法

    二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法. 有时 ...

  9. 二维数组排序算法php,phpsort_php二维数组排序方法

    摘要 腾兴网为您分享:php二维数组排序方法,中信金通,掌上公交,云南移动,悟空识字等软件知识,以及电脑鼠标连点器,趣赚赚,顺广传媒,佳能lide220,口袋校园,放放影院,手机炒股软件,建行商城,平 ...

最新文章

  1. 计算机网络总结之计算机概述
  2. 信息系统项目管理师优秀论文:论信息系统范围管理
  3. Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)
  4. php获取jsp的session的值,在JSP或Servlet中获取session数量
  5. 1054: 猴子吃桃
  6. 图解FFMPEG打开媒体的函数avformat_open_input
  7. vim编辑器删除空行
  8. 计算机设计大赛材料准备讲解
  9. 学嵌入式需要报培训班吗?
  10. 邮件服务器匿名,ProtonMail最安全且匿名邮箱免费服务
  11. Typescript中定义接口(interface)
  12. 还搞不懂JVM?这一篇教你JVM从入门到入魔,全篇干货满满!
  13. 凡事都要追求公平?还真不一定!
  14. 相机拍摄单色模式MOV视频可以恢复彩色吗?
  15. 机器学习完整项目实战附代码(一):探索型数据分析+特征工程+建模+报告
  16. [转]社区运营必读之天涯志
  17. Ceisum加载天地图(矢量、影像)
  18. Antares效果器插件合集 – Antares Bundle + Auto-Tune Pro 9 WiN
  19. 商业软件的注册码激活码的实现方法及代码示例(收藏备用)
  20. 台大林轩田机器学习技法完全解读

热门文章

  1. JavaWeb项目excel文件导入
  2. linux7 epel源,为CentOS7添加EPEL源
  3. 关于OleDbParameter的困扰
  4. C# BindingNavigator与DataGridView绑定
  5. 伊索寓言之(三)狮子的分享
  6. 工程师学乐理(一)尝试理解音乐
  7. Nodejs Napi 做的 mp3 转 wav 源码+编译好的动态库
  8. #内存泄露# #memwatch# memwatch
  9. Nginx高级之Rewrite规则
  10. 2021会宁三中高考成绩查询,2021甘肃省白银市中考录取分数线预测