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&amp;java(三)
Oct 09 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
php获取访问者IP地址汇总
Apr 24 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
CI配置多数据库访问的方法
Mar 28 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 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检测图片木马多进制编程实践
2013/04/11 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
jquery等待效果示例
2014/05/01 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
javascript history对象详解
2017/02/09 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python复制文件到指定目录的实例
2018/04/27 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
python能自学吗
2020/06/18 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
五好党支部事迹材料
2014/02/06 职场文书
工作迟到检讨书
2014/02/21 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
个人工作表现评语
2014/04/30 职场文书
大学学风建设方案
2014/05/04 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
2014年统战工作总结
2014/12/09 职场文书