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 连接mssql数据库 初学php笔记
Mar 01 PHP
php 过滤器实现代码
Aug 09 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
PHP中使用curl入门教程
Jul 02 PHP
php+ajax实现无刷新分页
Nov 18 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
php实现文件预览功能
May 23 PHP
php出租房数据管理及搜索页面
May 23 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 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数据库操作面向对象的优点
2006/10/09 PHP
ajax php 实现写入数据库
2009/09/02 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
js跳转页面方法总结
2014/01/29 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
Vue组件化开发思考
2018/02/02 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Python FFT合成波形的实例
2019/12/04 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Python Merge函数原理及用法解析
2020/09/16 Python
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
《桃花心木》教学反思
2014/02/17 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
电钳工人个人求职信
2014/05/10 职场文书
公证委托书标准格式
2014/09/11 职场文书
新学期主题班会
2015/08/17 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
ICOM R71E和R72E图文对比解说
2022/04/07 无线电