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脚本的10个技巧(2)
Oct 09 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
Sep 30 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
关于svn冲突的解决方法
Jun 21 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
Chrome Web App开发小结
2014/09/04 PHP
javascript读取xml
2006/11/04 Javascript
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
js继承实现方法详解
2016/12/16 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
Python 数据结构之队列的实现
2017/01/22 Python
Python中int()函数的用法浅析
2017/10/17 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
公司综合部的成员自我评价分享
2013/11/05 职场文书
物流创业计划书
2014/02/01 职场文书
企业领导对照检查材料
2014/08/20 职场文书
村官个人总结范文
2015/03/03 职场文书
让子弹飞观后感
2015/06/11 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
pandas中pd.groupby()的用法详解
2022/06/16 Python
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL