php的array_multisort()使用方法介绍
使用array_multisort()函数对多个数组或多维数组进行排序的函数,正在研究数组排序、多维数组排序的朋友可以看看。
函数 boolarray_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($arrayas$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 fread 逐行读取,php fread函数使用方法总结
- 如何运行PHP代码_运行php网站
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- PHP ImageMagick扩展有哪些函数?PHP ImageMagick扩展的使用方法
- 版本实现Linux安装多个PHP版本的方法(linux安装多个php)
- PHP 存储数据到 MySQL 数据库(php写入mysql)
- 环境搭建PHP在Linux下的环境搭建与应用(php用linux)
- PHP在Linux下的应用突破之路(php使用linux)
- 慢解决PHP连接MySQL慢的方法(php连接mysql时间)
- Linux操作系统下的PHP编译器使用技巧(linux php编译器)
- 在Linux环境下,使用PHP发送邮件(linux发送邮件php)
- ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨
- php获取mysql版本的几种方法小结
- PHP数组操作汇总php数组的使用技巧
- php中经典方法实现判断多维数组是否为空
- PHP中strtotime函数使用方法详解
- PHP使用DES进行加密与解密的方法详解
- PHP异常Parseerror:syntaxerror,unexpectedT_VAR错误解决方法
- php禁止浏览器使用缓存页面的方法