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 导致排序失效。