PHP中的array_multisort详解

基本用法

  1. array_multisort($a, $b)
  2. $a和$b两个数组的元素个数必须相等
  3. 先对$a进行排序,然后$b的排列顺序是按照$a的排列顺序排列(不是按照自己的元素的大小来排列的)
  4. 举个栗子

$one = array('5', '4', '3', '2', '1');
$two = array('1', '2', '3', '4', '5');

array_multisort($one, $two);
var_dump($one);
var_dump($two);

结果为:
PHP中的array_multisort详解_第1张图片

可以看到$one原来的顺序为54321,排列后的顺序颠倒过来变成12345,所以$two的顺序也是一样这样颠倒过来

  1. 这样排序主要可以对一个数组排序,接着按照这个数组的排序方式对接下来的其他数组
    按照这种顺序进行排序

进化版

  1. 语法: array_multisort(array1,sorting order,sorting type,array2,array3…)

  2. sorting order:可选的排序规则,注意要大写

    • SORT_ASC : 默认。按升序排列 (0-9,A-Z)。
    • SORT_DESC : 按降序排列 (9-0,Z-A)。
  3. sorting type:可选的排序类型

    • SORT_REGULAR : 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
    • SORT_NUMERIC :把每一项作为数字来处理。
    • SORT_STRING : 把每一项作为字符串来处理。
  4. 举个栗子


$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);

结果为:
PHP中的array_multisort详解_第2张图片

  1. 从结果可以看到,$three原来的顺序为12332,SORT_DESC表示是倒序排序,SORT_NUMERIC表示是对数字进行排序处理,排序后的结果是33221, 有两个3和两个2;所以在$four中排序顺序应该是:(bb, bc)(aa,ab)a,但是SORT_ASC表示了顺序相同的情况下按字母的顺序(SORT_STRING)排序所以为:bb,bc,aa,ab,a。

你可能感兴趣的:(PHP)