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 单引号与双引号的区别
Nov 24 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php 伪静态之IIS篇
Jun 02 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 PHP
php的XML文件解释类应用实例
Sep 22 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
Yii实现显示静态页的方法
Apr 25 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
js倒计时显示实例
2016/12/11 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
Vue之mixin全局的用法详解
2018/08/22 Javascript
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
python计算无向图节点度的实例代码
2019/11/22 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
2015年教师新年寄语
2014/12/08 职场文书
老公出轨后的保证书
2015/05/08 职场文书
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技