关于PHP数组函数array_multisort(),官方给的解释是:
对多个数组或者多维数组进行排序。
解释很简单,但具体怎么用呢?
使用该函数先说明一个前提条件,那就是参与排序的多个数组中的元素个数必须一致! 至于为什么,接着往下看。
举个例子说明:
对应的人去了对应的城市,然后对城市排序。
// 铁柱去了深圳,二蛋去了北京,大狗去了上海
$arr1 = array('深圳','北京','上海');
$arr2 = array('铁柱','二蛋','大狗');
array_multisort($arr1,$arr2);
var_dump($arr1);
var_dump($arr2);
输出结果:
对城市排序后,人的排序也作出调整,还是对应着城市。
array(3) {
[0]=>
string(6) "上海"
[1]=>
string(6) "北京"
[2]=>
string(6) "深圳"
}
array(3) {
[0]=>
string(6) "大狗"
[1]=>
string(6) "二蛋"
[2]=>
string(6) "铁柱"
}
可以得出一下结论
根据对数组arr1排序,数组arr2也作出了对应的调整,即根据对数组arr1的排序,来排序数组arr2。
文章开始说的参与排序数组中的元素个数必须一致的原因也很明了了,因为他们是一一对应的关系。
具体参数
明白了用法后,再来看一些参数细节。
array_multisort(
array &$array1,
mixed $array1_sort_order = SORT_ASC,
mixed $array1_sort_flags = SORT_REGULAR,
mixed ...$rest
):bool
-
$array1
- 对该参数排序 $array1_sort_order
- 排列的顺序,默认升序SORT_ASC,降序SORT_DESC $array1_sort_flags
-
排序的设定:
SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
SORT_NUMERIC - 按照数字大小比较
SORT_STRING - 按照字符串比较
SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。
SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。
$rest
- 根据$array1排序的数组,可以是1个或多个。 返回值
- 成功时返回 true, 或者在失败时返回 false。
举例:
// 人员信息整理
$names = array('鲍勃','汤姆','约翰');
$ages = array(17,23,21);
$address = array('四平','铁岭','八里沟');
// 根据年龄降序排列
array_multisort($ages,SORT_DESC,SORT_NUMERIC,$names,$address);
var_dump($names);
var_dump($ages);
var_dump($address);
输出结果:
array(3) {
[0]=>
string(6) "汤姆"
[1]=>
string(6) "约翰"
[2]=>
string(6) "鲍勃"
}
array(3) {
[0]=>
int(23)
[1]=>
int(21)
[2]=>
int(17)
}
array(3) {
[0]=>
string(6) "铁岭"
[1]=>
string(9) "八里沟"
[2]=>
string(6) "四平"
}