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中的串行化变量和序列化对象
Sep 05 PHP
PHP的FTP学习(四)
Oct 09 PHP
php mssql 时间格式问题
Jan 13 PHP
解析crontab php自动运行的方法
Jun 24 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
PHP实现过滤各种HTML标签
May 17 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
smarty半小时快速上手入门教程
2014/10/27 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
详解JavaScript函数
2015/12/01 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
运输服务质量承诺书
2014/03/27 职场文书
个人考核材料
2014/05/15 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android