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
:可选。指定用于排序的顺序。可以是SORT_ASC
(默认)表示升序,或者SORT_DESC
表示降序。$array1_sort_flags
:可选。指定排序算法使用的标志。详细可用的标志请参考PHP的sort()
和array_multisort()
函数文档。
返回值:
- 返回排序成功返回true,失败则返回false。
示例:
$names = ['John', 'Alice', 'Bob'];
$scores = [80, 95, 70];
// 按照分数降序排序,并保持姓名与分数的对应关系
array_multisort($scores, SORT_DESC, $names);
// 输出排序结果
for ($i = 0; $i < count($names); $i++) {
echo "<p>$names[$i] - $scores[$i]</p>";
}
输出结果:
<p>Alice - 95</p>
<p>John - 80</p>
<p>Bob - 70</p>
在这个示例中,我们有两个数组$names
和scores
,分别存储了学生姓名和分数。通过使用array_multisort()
函数,我们可以根据分数对两个数组进行排序。我们将$scores
数组作为第一个排序数组,并将排序顺序设置为降序SORT_DESC
。然后,我们传入$names
数组以保持姓名与分数的对应关系。
最后,我们使用一个循环来遍历排序后的数组,输出每个学生的姓名和分数。注意,排序后的数组索引是相同的,这样就可以正确地将姓名和分数对应起来。
希望这个示例能够清楚地演示array_multisort()
函数的用法和效果。