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 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
php 分页原理详解
Aug 21 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
在Laravel 中实现是否关注的示例
Oct 22 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中Session的概念
2006/10/09 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
vuex 的简单使用
2018/03/22 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python实现维吉尼亚算法
2019/03/20 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python bisect模块原理及常见实例
2020/06/17 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
应届毕业生应聘自荐信范文
2014/02/26 职场文书
2014全国两会心得体会
2014/03/17 职场文书
工程管理英文求职信
2014/03/18 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
党员剖析材料范文
2014/12/18 职场文书
《窃读记》教学反思
2016/02/18 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android
python实现MD5进行文件去重的示例代码
2021/07/09 Python