array_multisort()函数详解

参考:https://www.cnblogs.com/WuNaiHuaLuo/p/5794669.html

array_multisort()是数组排序函数,可以对多个PHP数组进行排序,排序结果是所有的数组都按第一个数组的顺序进行排列。先举个例子:
例如array_multisort( a , a, b), a , a, b是两个数组,如果排序之后, a 3 a数组的第3个元素被排到了第一位,那么 b的第三个元素不管他在$b中的大小都会排在第一位。

<?php 
$a =array(100,80,50,10,0);
$b = array("c","f","q","e","z");
array_multisort($a,$b);
var_dump($a);
var_dump($b);
?>

其实说明白了就是,array_multisort()先把第一个数组按照键值的大小排序,然后其它数组都按照第一个数组的调整策略进行调整。

不过需要注意的是:两个数组的元素个数必须相同,不然就会出现一个警告信息:
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in ……

array_multisort()对多维数组进行排序,这个功能将来做项目的时候是非常有用的!首先我们看看对多维数组的每一元素[数组]进行排序的操作方法,很简单,但是有几个参数(类似于sql的排序)需要说明一下,代码如下:

<?php
//让我们来构造一个多维数组
$a=array(100,2,4,7,7);
$b=array('ab','ac','ad','ag','ap');
 
$ab = array($a,$b);
//开始排序
array_multisort($ab[0],SORT_NUMERIC,SORT_DESC,$ab[1],SORT_STRING,SORT_ASC);
print_r($ab);
?>

说明一下:首先我们用SORT_NUMERIC来声明对$ab[0]用数字类型排序,用SORT_DESC,声明顺序是逆序(从大到小),然后我们对$ab[1]用字符串类型排序,顺序是升序(顺序),最后数组$ab的排序结果是两者的结合,先按$ab[0]的逆序,如果$ab[0]中存在大小相同的数值则按照$ab[1]的顺序排列。

猜你喜欢

转载自blog.csdn.net/weixin_40022980/article/details/84140757
今日推荐