background image

PHP 编程:使用 array mutisort 实现按某字段对数据排

本篇文章是对使用

array

 mutisort 实现按某字段对数据排序的方法进行了详细的分析介绍,

需要的朋友参考下

array_multisort

 

 

的用法

一、先看最简单的情况。有两个数组:

$arr1

 = 

array

(1,9,5);

$arr2

 = 

array

(6,2,4);

array_multisort

(

$arr1

,

$arr2

);

print_r(

$arr1

); 

// 得到的顺序是 1,5,9

print_r(

$arr2

); 

// 得到的顺序是 6,4,2

我估计两个数组的值自始至终都是对应着的:1 对应 6,9 对应 2,5 对应 4。
我们再加多一个数组看看会怎样:

$arr1

 = 

array

(1,9,5);

$arr2

 = 

array

(6,2,4);

$arr3

 = 

array

(3,7,8);

array_multisort

(

$arr1

,

$arr2

,

$arr3

);

 
查看结果,1 自始至终都对应 6 对应 3,其它项也是如此。这种对应关系就是手册中所谓

的 排序时保留原有的键名关联 。
另外也可以把每个数组想像成数据库表的一列。而对应着的 1,6,3 为一数据行,9,2,7 为另
一数据行。。。

array_multisort

会先按第一个数组(想像成列)排序,如果第一个数组(列)的值相同,

则按第二个数组(列)排序。
具体可以用下面的程式来测试:

$arr1

 = 

array

(1,9,5,9);

$arr2

 = 

array

(6,2,4,1);

$arr3

 = 

array

(3,7,8,0);

array_multisort

(

$arr1

,

$arr2

,

$arr3

);

可以想像这里

$arr3

的结果是(3,8,0,7)。

二、接下来讲解

array_multisort

的参数。

这个函数的参数很灵活。最简单的情况是如上面所示的以 1 个或 n 个数组作为参数,需要
注意的是每个数组的项数要一样,否则会 warning 导致排序失效。