php array_multisort 对数组进行排序详解及实例代码


Posted in PHP onOctober 27, 2016

php 中array_multisort() 函数可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。本文章向大家讲解array_multisort函数的使用方法。

 array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。

注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。

语法

array_multisort(array1,sorting order,sorting type,array2,array3...) 

参数描述

参数 描述
array1 必需。要排序的一个。
sorting order 可选。规定排列顺序。可能的值: SORT_ASC - 默认。按升序排列 (A-Z)。 SORT_DESC - 按降序排列 (Z-A)。
sorting type 可选。规定排序类型。可能的值: SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。 SORT_NUMERIC - 把每一项作为数字来处理。 SORT_STRING - 把每一项作为字符串来处理。 SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。 SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。 SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
array2 可选。规定数组。
array3 可选。规定数组。

 返回值

成功时返回 TRUE , 或者在失败时返回 FALSE 。

说明

array_multisort() 函数对多个数组或多维数组进行排序。

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:

SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)

随后可以指定排序的类型:

SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。

实例一:

排序多维数组

<?php
 $ar = array(
    array("10",11,100,100,"a"),
    array(1,2,"2",3,1)
   );
 array_multisort($ar[0], SORT_ASC,SORT_STRING,$ar[1],SORT_NUMERIC,SORT_DESC);
 var_dump($ar);
?>

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

运行结果:

array(2) {
 [0]=> array(5) {
  [0]=> string(2) "10"
  [1]=> int(100)
  [2]=> int(100)
  [3]=> int(11)
  [4]=> string(1) "a"
 }
 [1]=> array(5) {
  [0]=> int(1)
  [1]=> int(3)
  [2]=> string(1) "2"
  [3]=> int(2)
  [4]=> int(1)
 }
}

实例二:

不区分大小写字母排序

SORT_STRING 和 SORT_REGULAR 都是区分大小写字母的,大写字母会排在小写字母之前。
要进行不区分大小写的排序,就要按照原数组的小写字母拷贝来排序。

<?php
 $array=array('Alpha','atomic','Beta','bank');
 $array_lowercase=array_map('strtolower',$array);
 array_multisort($array_lowercase,SORT_ASC,SORT_STRING,$array);
 print_r($array);
?>

运行结果:

Array
(
  [0] => Alpha
  [1] => atomic
  [2] => bank
  [3] => Beta
)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 PHP
通过实例解析PHP数据类型转换方法
Jul 11 PHP
PHP时间类完整代码实例
Feb 26 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 PHP
PHP中的密码加密的解决方案总结
Oct 26 #PHP
php 解析xml 的四种方法详细介绍
Oct 26 #PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 #PHP
php 生成签名及验证签名详解
Oct 26 #PHP
PHP XML和数组互相转换详解
Oct 26 #PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 #PHP
php array_merge_recursive 数组合并
Oct 26 #PHP
You might like
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python使用urllib2提交http post请求的方法
2015/05/26 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Python 串口读写的实现方法
2019/06/12 Python
Python json转字典字符方法实例解析
2020/04/13 Python
通过代码实例了解Python sys模块
2020/09/14 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
财务会计人员求职的自我评价
2014/01/13 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
环保宣传标语
2014/06/12 职场文书
小学科学教学计划
2015/01/21 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers