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(3)
Oct 09 PHP
杏林同学录(八)
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
php随机显示图片的简单示例
Feb 15 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
PHP下载远程图片并保存到本地方法总结
Jan 22 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
浅谈php使用curl模拟多线程发送请求
Mar 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
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
中专自荐信
2013/10/13 职场文书
材料物理专业大学毕业生求职信
2013/10/15 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
运动会通讯稿100字
2014/01/31 职场文书
采购部长岗位职责
2014/06/13 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
关于童年的读书笔记
2015/06/26 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python