热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phparray_multisort()多组数组排序方法

在php中array_multisort()可实现一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序,如果成功则返回TRUE,失败则返回FALSE。

在php中array_multisort()可实现一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序,如果成功则返回 TRUE,失败则返回 FALSE.

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

如果成功则返回 TRUE,失败则返回 FALSE.

array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序.

关联(string)键名保持不变,但数字键名会被重新索引.

例子 1. 对多维数组排序实例代码如下:

  1. $ar = array
  2.        array("10", 11, 100, 100, "a"), 
  3.        array(   1,  2, "2",   3,   1) 
  4.       ); 
  5. array_multisort($ar[0], SORT_ASC, SORT_STRING, 
  6.                 $ar[1], SORT_NUMERIC, SORT_DESC); 
  7. var_dump($ar); 
  8. ?> 

In this example, after sorting, the first array will transform to "10", 100, 100, 11, "a" (it was sorted as strings in ascending order). The second will contain 1, 3, "2", 2, 1 (sorted as numbers, in descending order).

实例代码如下:

  1. array(2) { 
  2.   [0]=> array(5) { 
  3.     [0]=> string(2) "10" 
  4.     [1]=> int(100) 
  5.     [2]=> int(100) 
  6.     [3]=> int(11) 
  7.     [4]=> string(1) "a" 
  8.   } 
  9.   [1]=> array(5) { 
  10.     [0]=> int(1) 
  11.     [1]=> int(3) 
  12.     [2]=> string(1) "2" 
  13.     [3]=> int(2) 
  14.     [4]=> int(1) 
  15.   } 

本例中经过排序后,第一个数组将包含 10,100,100,"a"(作为字符串上升排序),第二个数组将包含 1,3,"2",1(作为数值下降排序).

例子 2. Sorting multi-dimensional array实例代码如下:

  1. $ar = array
  2.         array("10", 11, 100, 100, "a"), 
  3.         array(   1,  2, "2",   3,   1) 
  4.        ); 
  5. array_multisort($ar[0], SORT_ASC, SORT_STRING, 
  6.                 $ar[1], SORT_NUMERIC, SORT_DESC); 
  7. var_dump($ar); 
  8. ?>  

本例中在排序后,第一个数组将变成 "10",100,100,11,"a"(被当作字符串以升序排列).第二个数组将包含 1, 3, "2", 2, 1(被当作数字以降序排列).

实例代码如下:

  1. array(2) { 
  2.   [0]=> array(5) { 
  3.     [0]=> string(2) "10" 
  4.     [1]=> int(100) 
  5.     [2]=> int(100) 
  6.     [3]=> int(11) 
  7.     [4]=> string(1) "a" 
  8.   } 
  9.   [1]=> array(5) { 
  10.     [0]=> int(1) 
  11.     [1]=> int(3) 
  12.     [2]=> string(1) "2" 
  13.     [3]=> int(2) 
  14.     [4]=> int(1) 
  15.   } 

实例3 综合实现来看一个关于在应用中常用的实例代码如下:

  1. header('Content-Type: text/html; charset=utf-8');  
  2. echo '
    ';  
  3. //原始数组格式  
  4. $array = array(  
  5. 'key1' => array(  
  6. 'item1' => '65',  
  7. 'item2' => '35',  
  8. 'item3' => '84',  
  9. ),  
  10. 'key2' => array(  
  11. 'item1' => '24',  
  12. ),  
  13. 'key3' => array(  
  14. 'item1' => '38',  
  15. 'item3' => '45',  
  16. ),  
  17. );  
  18. //要排序的键  
  19. //按照数组中的 item1进行排序  
  20. //你也可以换成item2  
  21. $sort = 'item1';  
  22. foreach($array as $k => $v)  
  23. {  
  24. $newArr[$k] = $v[$sort];  
  25. }  
  26. //这个函数如果执行正确他会直接改变原数组键值的顺序  
  27. //如果执行失败,那么他会返回 bool(false)  
  28. array_multisort($newArr,SORT_DESC, $array);  
  29. var_dump($array);  
  30. //---------------------排序后的数组打印效果 开始--------------------  
  31. array(3) {  
  32. ["key1"]=>  
  33. array(3) {  
  34. ["item1"]=>  
  35. string(2) "65"  
  36. ["item2"]=>  
  37. string(2) "35"  
  38. ["item3"]=>  
  39. string(2) "84"  
  40. }  
  41. ["key3"]=>  
  42. array(2) {  
  43. ["item1"]=>  
  44. string(2) "38"  
  45. ["item3"]=>  
  46. string(2) "45"  
  47. }  
  48. ["key2"]=>  
  49. array(1) {  
  50. ["item1"]=>  
  51. string(2) "24"  
  52. }  
  53. }  
  54. //---------------------排序后的数组打印效果 结束--------------------- 

推荐阅读
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文详细介绍了SDCMS中的全局标签和循环标签。全局标签是在任何模板页面中均可调用的标签,而循环标签用于数据查询和展示。文章解释了这些标签的功能、使用方法及参数配置。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍如何使用CSS自定义HTML5视频播放器的样式,涵盖常见属性及跨浏览器兼容性问题。发布时间:2020-09-14 14:46:29;来源:亿速云;阅读量:58;作者:小新。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • 本文详细介绍了JSP的三大指令:page、include和taglib,重点探讨了静态包含与动态包含的区别及其应用场景,并解释了如何使用taglib指令引入第三方标签库。 ... [详细]
author-avatar
jkjkjd_105
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有