基本用法
- array_multisort($a, $b)
- $a和$b两个数组的元素个数必须相等
- 先对$a进行排序,然后$b的排列顺序是按照$a的排列顺序排列(不是按照自己的元素的大小来排列的)
- 举个栗子
<?php
$one = array('5', '4', '3', '2', '1');
$two = array('1', '2', '3', '4', '5');
array_multisort($one, $two);
var_dump($one);
var_dump($two);
结果为:
可以看到$one原来的顺序为54321,排列后的顺序颠倒过来变成12345,所以$two的顺序也是一样这样颠倒过来
- 这样排序主要可以对一个数组排序,接着按照这个数组的排序方式对接下来的其他数组
按照这种顺序进行排序
进化版
-
语法: array_multisort(array1,sorting order,sorting type,array2,array3…)
-
sorting order:可选的排序规则,注意要大写
- SORT_ASC : 默认。按升序排列 (0-9,A-Z)。
- SORT_DESC : 按降序排列 (9-0,Z-A)。
-
sorting type:可选的排序类型
- SORT_REGULAR : 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
- SORT_NUMERIC :把每一项作为数字来处理。
- SORT_STRING : 把每一项作为字符串来处理。
-
举个栗子
<?php
$three = array('1', '2', '3', '3', '2');
$four = array('a', 'aa', 'bb', 'bc', 'ab');
array_multisort($three, SORT_DESC, SORT_NUMERIC, $four, SORT_ASC, SORT_STRING);
var_dump($three);
var_dump($four);
结果为:
- 从结果可以看到,$three原来的顺序为12332,SORT_DESC表示是倒序排序,SORT_NUMERIC表示是对数字进行排序处理,排序后的结果是33221, 有两个3和两个2;所以在$four中排序顺序应该是:(bb, bc)(aa,ab)a,但是SORT_ASC表示了顺序相同的情况下按字母的顺序(SORT_STRING)排序所以为:bb,bc,aa,ab,a。