PHP array_multisort() 函数
说明
array_multisort() 函数一次对多个数组或多维数组进行一维或多维排序。 排序就像数组是表中的列一样进行。
关联键或字符串键将被保留,但数字键将被重新索引。
下表总结了该函数的技术细节。
| 返回值: | 成功返回TRUE,失败返回FALSE。 |
|---|---|
| 变更日志: |
在 PHP 5.4.0 中添加了排序标志 在 PHP 5.3.0 中添加了排序标志
SORT_LOCALE_STRING |
| 版本: | PHP 4+ |
语法
array_multisort() 函数的基本语法如下:
array_multisort(array1, array1_sort_order, array1_sort_flags, ...)
下面的例子展示了 array_multisort() 函数的作用。
<?php
// 样本数组
$array1 = array(2, 7, 10, 5);
$array2 = array(4, 3, 1, 2);
// 对多个数组进行排序
array_multisort($array1, $array2);
print_r($array1);
print_r($array2);
?>
提示:第一个数组是主要的排序依据; 其他数组中的所有项目都根据第一个数组的排序顺序重新排序(即,数组被视为表的列)。 如果第一个数组中的项目比较相等,则排序顺序由第二个数组确定,依此类推。
在上面的示例中,排序后的第一个数组将包含 2、5、7、10,第二个数组将包含 4、2、3、1。请注意,第二个数组中的条目对应于第一个数组中的条目。 为了更好地理解这一点,让我们仔细看看下面的插图。
array1 | array2
--------+--------
2 | 4
7 | 3
10 | 1
5 | 2
|
array1 | array2
--------+--------
2 | 4
5 | 2
7 | 3
10 | 1
|
|
| Before Sorting | After Sorting |
参数
array_multisort() 函数接受以下参数。
| 参数 | 说明 |
|---|---|
| array1 | 必填。 指定要排序的数组。 |
| array1_sort_order |
可选。 指定排序顺序。 可能的值是:
|
| array1_sort_flags |
可选。 指定应如何比较数组项。 可能的值是:
|
| ... | 可选。 指定要排序的更多数组,可选地后跟排序顺序和标志。 仅比较与先前数组中等效元素相对应的元素。 |
更多示例
这里有更多示例展示了 array_multisort() 函数的基本工作原理:
以下示例展示了如何使用此函数对多维数组进行排序。
<?php
// 样本数组
$array = array(
array("10", 11, 100, 100, "a"),
array(1, 4, "2", 5, 3)
);
// 对多维数组进行排序
array_multisort($array[0], SORT_STRING, $array[1], SORT_DESC, SORT_NUMERIC);
print_r($array);
?>
Advertisements
