在PHP中,数组函数 array_multisort () 用于对多个数组或多维数组进行排序。
函数语法:
array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] ) : bool
函数参数说明:
参数 | 描述 |
---|---|
array1 | 必需。规定数组。 |
array1_sort_order | 可选。规定排列顺序。可能的值:
|
array1_sort_flags | 可选。规定排序类型。可能的值:
|
array2 | 可选。规定数组。 |
array3 | 可选。规定数组。 |
array_multisort () 函数可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
注意:
1. 关联(string)键名保持不变,但数字键名会被重新索引。
举例1,数组排序:
<?php // 定义数组 $ar1 = array(10, 100, 100, 0); $ar2 = array(1, 3, 2, 4); // 对多个数组排序 array_multisort($ar1, $ar2); var_dump($ar1); var_dump($ar2);
以上代码输出如下(第二个数组里的项目对应第一个数组后也进行了排序):
array (size=4) 0 => int 0 1 => int 10 2 => int 100 3 => int 100 array (size=4) 0 => int 4 1 => int 1 2 => int 2 3 => int 3
举例2,排序多维数组:
<?php // 定义多维数组 $ar = array( array("10", 11, 100, 100, "a"), array( 1, 2, "2", 3, 1) ); // 排序 array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); var_dump($ar);
以上代码输出如下(第二个数组里的项目对应第一个数组后也进行了排序):
array (size=2) 0 => array (size=5) 0 => string '10' (length=2) 1 => int 100 2 => int 100 3 => int 11 4 => string 'a' (length=1) 1 => array (size=5) 0 => int 1 1 => int 3 2 => string '2' (length=1) 3 => int 2 4 => int 1