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时间戳使用实例代码
Jun 07 PHP
PHP常用函数小技巧
Sep 11 PHP
使用cookie实现统计访问者登陆次数
Jun 08 PHP
PHP中array_merge和array相加的区别分析
Jun 17 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php随机取mysql记录方法小结
Dec 27 PHP
PHP制作万年历
Jan 07 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 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
php empty() 检查一个变量是否为空
2011/11/10 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php常用hash加密函数
2014/11/22 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Pytorch之parameters的使用
2019/12/31 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
Whistles官网:英国女装品牌
2020/08/14 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
男方婚前保证书
2015/02/28 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
PHP中多字节字符串操作实例详解
2021/08/23 PHP
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
实操Python爬取觅知网素材图片示例
2021/11/27 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS