array_multisort()
是一个非常有用的 PHP 函数,它用于对多个数组或多维数组进行排序。这个函数可以同时对多个数组进行排序,并且支持按照多个键进行排序。
下面是 array_multisort()
函数的语法:
array_multisort(array &$array1, array &$array2, array &$array3 = null, $sort_flags = SORT_ASC, $column = 0): bool
参数说明:
$array1
:要排序的第一个数组。该参数是必需的。$array2
:要排序的第二个数组。该参数是可选的。$array3
:要排序的第三个数组。该参数也是可选的。可以传递多个数组,依此类推。$sort_flags
:排序标志,用于指定排序方式(升序或降序)。默认值为SORT_ASC
(升序)。$column
:要排序的列的索引。默认值为 0,表示按第一个列进行排序。可以指定多个列,以逗号分隔。
示例 1:对一个数组进行排序
$fruits = array("apple", "banana", "orange");
array_multisort($fruits);
print_r($fruits);
输出:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
示例 2:对多个数组进行排序
$fruits = array("apple", "banana", "orange");
$colors = array("red", "yellow", "orange");
array_multisort($fruits, $colors);
print_r($fruits);
print_r($colors);
输出:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
Array
(
[0] => red
[1] => yellow
[2] => orange
)
在示例 2 中,我们有两个数组 $fruits
和 $colors
。我们使用 array_multisort()
函数对这两个数组进行排序,并根据它们之间的关联关系进行排序。由于两个数组都有相同的元素顺序,因此它们会以相同的顺序进行排序。
示例 3:按多个列进行排序
$students = array(
array("name" => "John", "age" => 20, "score" => 85),
array("name" => "Jane", "age" => 25, "score" => 90),
array("name" => "Bob", "age" => 22, "score" => 78)
);
array_multisort(array_column($students, 'score'), SORT_DESC, array_column($students, 'age'), SORT_ASC, $students);
print_r($students);
输出:
Array
(
[0] => Array
(
[name] => Jane
[age] => 25
[score] => 90
)
[1] => Array
(
[name] => John
[age] => 20
[score] => 85
)
[2] => Array
(
[name] => Bob
[age] => 22
[score] => 78
)
)