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批量生成缩略图的代码
Jul 19 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
理解PHP中的stdClass类
Apr 18 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
详谈PHP编码转换问题
Jul 28 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
php制作简单模版引擎
Apr 07 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 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
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
pandas实现选取特定索引的行
2018/04/20 Python
Python 函数返回值的示例代码
2019/03/11 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Python多线程的退出控制实现
2020/08/10 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
学术会议欢迎词
2014/01/09 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
餐厅总厨求职信
2014/03/04 职场文书
运动会口号大全
2014/06/07 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
MySQL数据库 任意ip连接方法
2022/05/20 MySQL