`array_multisort()` 函数是 PHP 中用于对多个数组或多维数组进行排序的函数。它非常灵活,允许你根据一个或多个数组的值对数组进行排序,或者对多维数组的某一列进行排序。
### 基本语法
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
- `&$array1`(必需):第一个要排序的数组,之后的参数可以是多个数组或者排序标志。
- `$array1_sort_order`(可选):指定排序顺序,`SORT_ASC` 为升序,`SORT_DESC` 为降序。默认为 `SORT_ASC`。
- `$array1_sort_flags`(可选):指定排序类型,例如 `SORT_REGULAR`(正常比较),`SORT_NUMERIC`(按照数字比较),`SORT_STRING`(按照字符串比较),等。默认为 `SORT_REGULAR`。
### 使用示例
假设我们有两个数组,一个包含人名,另一个包含对应的分数,我们想根据分数对人名进行排序。
$names = array("John", "Linda", "Barbara", "Peter", "Alice");
$scores = array(90, 88, 95, 85, 92);
// 使用 array_multisort() 根据分数对名字进行排序
array_multisort($scores, SORT_ASC, $names);
// 输出排序后的结果
echo "Sorted names: \n";
print_r($names);
在这个例子中,`$scores` 数组首先被升序排序,同时 `$names` 数组也会根据 `$scores` 的排序结果进行相应的排序。
### 注意事项
- `array_multisort()` 会直接修改数组本身,而不是返回一个新的排序后的数组。
- 如果需要按照多个条件进行排序(例如,首先按分数排序,分数相同则按名字排序),可以传递多个数组和排序标志给 `array_multisort()`。
- 当对多维数组进行排序时,可以通过传递数组的列索引(或列键名)作为参数来指定排序的列。
这就是 `array_multisort()` 函数的基本使用方法和一些注意事项。