对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] view plain copy
  1. <?php
  2. function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){
  3. if(is_array($arrays)){
  4. foreach ($arrays as $array){
  5. if(is_array($array)){
  6. $key_arrays[] = $array[$sort_key];
  7. }else{
  8. return false;
  9. }
  10. }
  11. }else{
  12. return false;
  13. }
  14. array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
  15. return $arrays;
  16. }
  17. $person =  array(
  18. array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),
  19. array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150),
  20. array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156),
  21. array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190),
  22. array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200),
  23. array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110),
  24. array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170)
  25. );
  26. var_dump($person);
  27. $person = my_sort($person,'name',SORT_ASC,SORT_STRING);
  28. var_dump($person);
  29. $person = my_sort($person,'weight');
  30. var_dump($person);
  31. ?>

结果如下:

array (size=7)0 => array (size=4)'id' =>  1'name' =>  'fj' (length=2)'weight' =>  100'height' =>  1801 => array (size=4)'id' =>  2'name' =>  'tom' (length=3)'weight' =>  53'height' =>  1502 => array (size=4)'id' =>  3'name' =>  'jerry' (length=5)'weight' =>  120'height' =>  1563 => array (size=4)'id' =>  4'name' =>  'bill' (length=4)'weight' =>  110'height' =>  1904 => array (size=4)'id' =>  5'name' =>  'linken' (length=6)'weight' =>  80'height' =>  2005 => array (size=4)'id' =>  6'name' =>  'madana' (length=6)'weight' =>  95'height' =>  1106 => array (size=4)'id' =>  7'name' =>  'jordan' (length=6)'weight' =>  70'height' =>  170
array (size=7)0 => array (size=4)'id' =>  4'name' =>  'bill' (length=4)'weight' =>  110'height' =>  1901 => array (size=4)'id' =>  1'name' =>  'fj' (length=2)'weight' =>  100'height' =>  1802 => array (size=4)'id' =>  3'name' =>  'jerry' (length=5)'weight' =>  120'height' =>  1563 => array (size=4)'id' =>  7'name' =>  'jordan' (length=6)'weight' =>  70'height' =>  1704 => array (size=4)'id' =>  5'name' =>  'linken' (length=6)'weight' =>  80'height' =>  2005 => array (size=4)'id' =>  6'name' =>  'madana' (length=6)'weight' =>  95'height' =>  1106 => array (size=4)'id' =>  2'name' =>  'tom' (length=3)'weight' =>  53'height' =>  150
array (size=7)0 => array (size=4)'id' =>  2'name' =>  'tom' (length=3)'weight' =>  53'height' =>  1501 => array (size=4)'id' =>  7'name' =>  'jordan' (length=6)'weight' =>  70'height' =>  1702 => array (size=4)'id' =>  5'name' =>  'linken' (length=6)'weight' =>  80'height' =>  2003 => array (size=4)'id' =>  6'name' =>  'madana' (length=6)'weight' =>  95'height' =>  1104 => array (size=4)'id' =>  1'name' =>  'fj' (length=2)'weight' =>  100'height' =>  1805 => array (size=4)'id' =>  4'name' =>  'bill' (length=4)'weight' =>  110'height' =>  1906 => array (size=4)'id' =>  3'name' =>  'jerry' (length=5)'weight' =>  120'height' =>  156

这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。

php基础篇-二维数组排序 array_multisort相关推荐

  1. php 二维数组排序,php基础篇-二维数组排序 array_multisort

    搜索热词 对2维数组或者多维数组排序是常见的问题,在PHP知识库" href="http://lib.csdn.net/base/PHP" target="_b ...

  2. php二维数组排序降序,PHP二维数组排序 array_multisort

    这篇文章主要介绍的内容是关于PHP二维数组排序 array_multisort,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 对2维数组或者多维数组排序是常见的问题,在PHP中我们有个 ...

  3. PHP二维数组排序 array_multisort

    1.根据二维数组中的某一列按升序或者降序排列 不需要遍历数组就可以对二维数组排序 // 1.构造数组 $data = [['a'=>23,'b'=>'hhhh','c'=>'2013 ...

  4. PHP语言二维数组排序,php 二维数组排序 array_multisort

    对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type ...

  5. c语言sort函数排序二维数组,js 二维数组排序sort()函数

    一.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; arr.sort(function(x, y){ return x[0] – y[0]; }) ...

  6. php 二维排序函数,PHP二维数组排序函数

    PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义. 以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义: functi ...

  7. PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())

    //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if ( ...

  8. php 二维数组排序函数,php自定义二维数组排序函数array

    这次给大家带来php自定义二维数组排序函数array,php自定义二维数组排序函数array的注意事项有哪些,下面就是实战案例,一起来看一下. 这篇文章主要介绍了php自定义二维数组排序函数array ...

  9. [Python学习] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例

    通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言.它不光在爬取网上资料上方便,还在NLP自然语言处理方面拥有独到的优势.这篇文章主要简单的介绍使用Pytho ...

最新文章

  1. 邻域闭包matlab,闭包 - it610.com
  2. android语言 选择题,Android N以编程方式更改语言
  3. Android应用中Back键的监听及处理
  4. 苦逼的程序员怎么发展
  5. [2767]翻转排序 sdutOJ
  6. 教程-delphi的开源json库:superobject,用法简介
  7. mysql二进制日志开启方法_mysql中如何开启binlog?开启二进制日志文件?binary log?
  8. c#图像处理、图片拼接、图片裁剪、图片缩放、图上添加形状、屏幕截图、图片反色、改变图片色彩度全解
  9. Java 8 Base64 编码解码
  10. 2022大众点评商家数据
  11. python库手册_Python 中文开发手册
  12. php库函数是什么,PHP常用库函数
  13. (2020/11/9)学习记录
  14. [日推荐]『足球欧洲』.这里有关于足球的一切!
  15. 服务器正常运行温度,服务器cpu的温度在什么范围内是属于正常温度
  16. Word参考文献设置-尾注后添加致谢等内容
  17. 小功率机械无级变速器结构设计
  18. SwiftUI 人工智能教程之图像识别植物或花朵通过图片和相机
  19. Qt学习(一)模型与视图
  20. cnn生成图像显著图_基本原理 | 图片中的绝对位置信息,CNN能搞定吗?

热门文章

  1. trace与代码跟踪服务
  2. 好用的工具---screen命令
  3. android开发Proguard混淆与反射
  4. 在清华听演讲系列音频下载地址收集
  5. .NET 指南:参数的设计
  6. 让IE的F1帮助变成自己的
  7. 更改jenkins的默认工作空间并迁移插件和配置数据
  8. RHEL5.X 重启网卡出现./network-functions: line 78: .: ifcfg-eth0: file not found
  9. Sublime Text 2 中文包
  10. Nand Flash VS Nor Flash