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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
Apache2 httpd.conf 中文版
Dec 06 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
浅谈php扩展imagick
Jun 02 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
PHP安全上传图片的方法
Mar 21 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
PHP实现登录验证码校验功能
May 17 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 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 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
js实现微信聊天效果
2020/08/09 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Python map和reduce函数用法示例
2015/02/26 Python
详解python3百度指数抓取实例
2016/12/12 Python
详解Python中的动态属性和特性
2018/04/07 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python实现列表的排序方法分享
2019/07/01 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
《灯光》教学反思
2014/02/08 职场文书
科研课题实施方案
2014/03/18 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers