接下来我将为您详细讲解“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实例分享之二维数组排序 - Python技术站