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自动适应范围的分页代码
Aug 05 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jQuery select控制插件
2009/08/17 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
python如何将两个txt文件内容合并
2019/10/18 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python如何进行矩阵运算
2020/06/05 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
新教师工作感言
2014/02/16 职场文书
忠诚教育心得体会
2014/09/03 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
实验心得体会范文
2016/01/25 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书