php的array_multisort()使用方法介绍


Posted in PHP onMay 16, 2012

使用 array_multisort()函数对多个数组或多维数组进行排序的函数,正在研究数组排序、多维数组排序的朋友可以看看。

函数 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $...]]] )

参数说明: 函数对多个数组或多维数组进行排序

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志
SORT_ASC - 默认,按升序排列
SORT_DESC - 按降序排列
随后可以指定排序的类型
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。
例:

<?php
$arr1 = array('10', 11, 100, 100, 'a'); 
$arr2 = array(1, 2, 3, '2', 5); 
array_multisort($arr1, $arr2); 
?>

结果为:
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [3] => 100 [4] => 100 )
# '10'在与11, 100, 100比较时转换为整数10,小于其他三个数
# '10'在于'a'比较时作为字符串,其第一个字符'1'ascii码值为49小于‘a'(ascii值为97),所以‘10'为最小元素
# 'a'在于其他三个数字比较时,转换为整数0,小于其他三个数
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2元素1与$arr1元素'10'位置对应,所以排在[0]位置
# $arr1[2] => 100, $arr1[3] => 100分别对应$arr2元素3, '2'。3大于'2',所以与2对应的$arr1[2] => 100排序后的下标为3,与3对应的$arr1[3] => 100排序的下标为4
总结----------
1.参与排序的数组元素数保持一致
2.排序数组元素位置对应如, ‘10' => 1 , 11 => 2
3.后边的数组在前边数组的顺序的基础上进行排序
4.前边的数组如遇相等的元素则比较后边的数组

下边就是使用的实例,手册上的例子不列了,就我自己工作中的几个。
工作中碰到最多的可能就是二维数组了,想试试三维数组,但是想想还是算了。

header('Content-Type: text/html; charset=utf-8'); 
echo '<pre>'; 
//原始数组格式 
$array = array( 
'key1' => array( 
'item1' => '65', 
'item2' => '35', 
'item3' => '84', 
), 
'key2' => array( 
'item1' => '24', 
), 
'key3' => array( 
'item1' => '38', 
'item3' => '45', 
), 
); 
//要排序的键 
//按照数组中的 item1进行排序 
//你也可以换成item2 
$sort = 'item1'; 
foreach($array as $k => $v) 
{ 
$newArr[$k] = $v[$sort]; 
} 
//这个函数如果执行正确他会直接改变原数组键值的顺序 
//如果执行失败,那么他会返回 bool(false) 
array_multisort($newArr,SORT_DESC, $array); 
var_dump($array); 
//---------------------排序后的数组打印效果 开始-------------------- 
array(3) { 
["key1"]=> 
array(3) { 
["item1"]=> 
string(2) "65" 
["item2"]=> 
string(2) "35" 
["item3"]=> 
string(2) "84" 
} 
["key3"]=> 
array(2) { 
["item1"]=> 
string(2) "38" 
["item3"]=> 
string(2) "45" 
} 
["key2"]=> 
array(1) { 
["item1"]=> 
string(2) "24" 
} 
} 
//---------------------排序后的数组打印效果 结束---------------------

PHP 相关文章推荐
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
php异常处理技术,顶级异常处理器
Jun 13 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 #PHP
php array的学习笔记
May 16 #PHP
php文件操作实例代码
May 10 #PHP
PHP图片验证码制作实现分享(全)
May 10 #PHP
php array的学习笔记
May 10 #PHP
php 中的4种标记风格介绍
May 10 #PHP
php中常用的预定义变量小结
May 09 #PHP
You might like
一个用于网络的工具函数库
2006/10/09 PHP
php实现的SESSION类
2014/12/02 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
javascript学习网址备忘
2007/05/29 Javascript
JavaScript 继承详解(四)
2009/07/13 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
详解Python正则表达式re模块
2019/03/19 Python
python多进程读图提取特征存npy
2019/05/21 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
放飞蜻蜓反思
2014/02/05 职场文书
教师职称自我鉴定
2014/02/12 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android