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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
php adodb连接不同数据库
Mar 19 PHP
php随机输出名人名言的代码
Oct 07 PHP
浅析php header 跳转
Jun 17 PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
浅谈json_encode用法
Mar 05 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
禁止直接访问php文件代码分享
May 05 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中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
vue-router路由模式详解(小结)
2019/08/26 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
python+opencv实现阈值分割
2018/12/26 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Python 项目转化为so文件实例
2019/12/23 Python
Python的collections模块真的很好用
2021/03/01 Python
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
AOP的定义以及作用
2013/09/08 面试题
中文专业毕业生自荐信
2013/10/28 职场文书
会计专业的自荐信
2013/12/12 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
上甘岭观后感
2015/06/10 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers