接下来我将为您详细讲解“php实例分享之二维数组排序”的完整攻略。
接下来我将为您详细讲解“php实例分享之二维数组排序”的完整攻略。
一、什么是二维数组排序?
在php中,我们经常需要对数组进行排序,而如果数组是一个多维数组时,我们就需要对其进行二维数组排序。简单来说,二维数组排序就是对一个数组中的子数组进行排序,使得整个数组具有一定的顺序。
二、二维数组排序的方法详解
php中有三种主要的排序方法来对二维数组进行排序,分别是:按值排序、按键排序、按自定义规则排序。
1. 按值排序
按值排序是按照数组元素的值进行排序。php中提供了两个内置函数:asort()
和arsort()
,分别用于进行升序和降序排序。
示例:
<?php
$grades = [
['name' => 'John', 'grade' => 90],
['name' => 'Mike', 'grade' => 80],
['name' => 'Kate', 'grade' => 100]
];
//按成绩升序排序
asort($grades);
print_r($grades);
//按成绩降序排序
arsort($grades);
print_r($grades);
?>
运行结果:
Array
(
[1] => Array
(
[name] => Mike
[grade] => 80
)
[0] => Array
(
[name] => John
[grade] => 90
)
[2] => Array
(
[name] => Kate
[grade] => 100
)
)
Array
(
[2] => Array
(
[name] => Kate
[grade] => 100
)
[0] => Array
(
[name] => John
[grade] => 90
)
[1] => Array
(
[name] => Mike
[grade] => 80
)
)
可以看到,我们先按成绩升序排序,然后再按成绩降序排序。
2. 按键排序
按键排序是按照数组元素的键进行排序。php中提供了两个内置函数:ksort()
和krsort()
,分别用于进行升序和降序排序。
示例:
<?php
$grades = [
'John' => ['grade' => 90],
'Mike' => ['grade' => 80],
'Kate' => ['grade' => 100]
];
//按名字升序排序
ksort($grades);
print_r($grades);
//按名字降序排序
krsort($grades);
print_r($grades);
?>
运行结果:
Array
(
[John] => Array
(
[grade] => 90
)
[Kate] => Array
(
[grade] => 100
)
[Mike] => Array
(
[grade] => 80
)
)
Array
(
[Mike] => Array
(
[grade] => 80
)
[Kate] => Array
(
[grade] => 100
)
[John] => Array
(
[grade] => 90
)
)
可以看到,我们先按名字升序排序,然后再按名字降序排序。
3. 按自定义规则排序
按自定义规则排序是按照一定的自定义规则对数组元素进行排序。php中提供了一个内置函数:usort()
,允许我们自己定义排序规则。
示例:
<?php
$grades = [
['name' => 'John', 'grade' => 90],
['name' => 'Mike', 'grade' => 80],
['name' => 'Kate', 'grade' => 100]
];
//按成绩升序排序
usort($grades, function($a, $b) {
return $a['grade'] - $b['grade'];
});
print_r($grades);
//按成绩降序排序
usort($grades, function($a, $b) {
return $b['grade'] - $a['grade'];
});
print_r($grades);
?>
运行结果:
Array
(
[0] => Array
(
[name] => Mike
[grade] => 80
)
[1] => Array
(
[name] => John
[grade] => 90
)
[2] => Array
(
[name] => Kate
[grade] => 100
)
)
Array
(
[2] => Array
(
[name] => Kate
[grade] => 100
)
[1] => Array
(
[name] => John
[grade] => 90
)
[0] => Array
(
[name] => Mike
[grade] => 80
)
)
可以看到,我们先按成绩升序排序,然后再按成绩降序排序。
三、总结
至此,我们已经详细讲解了php二维数组排序的各种方法及具体使用。希望对各位php爱好者有所帮助。
本文标题为:php实例分享之二维数组排序
- PHP命名空间与自动加载类详解 2022-11-14
- PHP PDOStatement::bindValue讲解 2022-12-12
- php 中文和编码判断代码 2023-12-13
- PHP实现LRU算法的原理详解 2023-06-26
- php中cookie与session的区别点总结 2022-09-12
- PHP PDOStatement::bindColumn讲解 2022-12-12
- laravel5.1框架基础之Blade模板继承简单使用方法分析 2023-02-06
- PHP实现的策略模式示例 2023-01-04
- WEB服务器防盗链_HttpAccessKeyModule_Referer(Nginx&&PHP) 2023-09-02
- php微信公众号开发之欢迎老朋友 2022-11-25