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利用COM对象访问SQLServer、Access
Oct 09 PHP
PHP中基本符号及使用方法
Mar 23 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
laravel 出现command not found问题的解决方案
Oct 23 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
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
JavaScript 基本概念
2015/01/20 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
跟老齐学Python之开始真正编程
2014/09/12 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
Python多继承顺序实例分析
2018/05/26 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
使用python进行拆分大文件的方法
2018/12/10 Python
python解析yaml文件过程详解
2019/08/30 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
倡议书范文格式
2014/05/12 职场文书
中秋手机店促销方案
2014/06/16 职场文书
节能标语大全
2014/06/21 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
Win11开始菜单添加休眠选项
2022/04/19 数码科技