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 相关文章推荐
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
PHP开发框架总结收藏
Apr 24 PHP
PHP面向对象概念
Nov 06 PHP
php中的常用魔术方法总结
Aug 02 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php中动态变量用法实例
Jun 10 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
Laravel框架集合用法实例浅析
May 14 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
php动态生成函数示例
2014/03/21 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
js脚本实现数据去重
2014/11/27 Javascript
javascript中Object使用详解
2015/01/26 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
八大排序算法的Python实现
2021/01/28 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
办公室主任先进事迹
2014/01/18 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
create-react-app开发常用配置教程
2022/06/25 Javascript