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 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
PHP错误和异长常处理总结
Mar 06 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
PHP反向代理类代码
Aug 15 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
Yii2框架使用计划任务的方法
May 25 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 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
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
前端性能优化建议
2020/09/17 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
python实现画圆功能
2018/01/25 Python
Python中的枚举类型示例介绍
2019/01/09 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python爬虫添加请求头代码实例
2019/12/28 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
大一自我鉴定范文
2013/10/04 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
小学节能减排倡议书
2014/05/15 职场文书
2014公司年终工作总结
2014/12/19 职场文书
辞职信范文大全
2015/03/02 职场文书
出国留学导师推荐信
2015/03/26 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书