PHP中有许多个返回true的函数,我们在这篇文章中将重点介绍两个二维数组排序函数。
1. usort函数
usort函数用于对数组进行自定义排序。它接受两个参数,第一个参数是要排序的数组,第二个参数是一个回调函数,用于定义排序的规则。回调函数需要接受两个参数,每次比较两个元素时,回调函数都会被调用。如果第一个元素应排在第二个元素之前,则返回一个负数,如果第一个元素应排在第二个元素之后,则返回一个正数,如果两个元素相等,则返回0。
以下是一个使用usort函数对二维数组进行排序的示例:
```php
$students = [
['name' => 'Tom', 'age' => 20],
['name' => 'John', 'age' => 18],
['name' => 'Emily', 'age' => 22],
];
usort($students, function($a, $b) {
return $a['age'] - $b['age'];
});
print_r($students);
```
上述代码将根据学生的年龄对二维数组进行升序排序。输出结果为:
```
Array
(
[0] => Array
(
[name] => John
[age] => 18
)
[1] => Array
(
[name] => Tom
[age] => 20
)
[2] => Array
(
[name] => Emily
[age] => 22
)
)
```
在回调函数中,我们使用了`$a['age'] - $b['age']`来比较学生的年龄,以实现升序排序。如果需要降序排序,只需将返回值改为`$b['age'] - $a['age']`。
2. array_multisort函数
array_multisort函数用于同时对多个数组或多维数组进行排序。它接受多个参数,每个参数都是要排序的数组,最后一个参数可以是排序标志。排序标志可以是常量`SORT_ASC`表示升序排序,或常量`SORT_DESC`表示降序排序。
以下是一个使用array_multisort函数对两个二维数组进行排序的示例:
```php
$names = ['Tom', 'John', 'Emily'];
$ages = [20, 18, 22];
array_multisort($ages, $names);
print_r($names);
print_r($ages);
```
上述代码将根据年龄对两个数组进行升序排序,并且两个数组的元素之间的对应关系会保持不变。输出结果为:
```
Array
(
[0] => John
[1] => Tom
[2] => Emily
)
Array
(
[0] => 18
[1] => 20
[2] => 22
)
```
在array_multisort函数中,我们先传入要排序的数组$ages,再传入要排序的数组$names。通过array_multisort函数对$ages进行排序时,$names的元素会跟着对应排序。
除了usort函数和array_multisort函数,还有许多其他的排序函数可以在PHP中使用。这些函数都提供了灵活的参数和选项,以便根据具体需求进行排序。无论是对于简单的一维数组还是复杂的多维数组,PHP都提供了丰富的排序函数供我们使用。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复