PHP函数排序技巧:介绍PHP中常用的排序函数及其使用技巧
PHP中常用的排序函数有sort、rsort、asort、arsort、ksort、krsort、usort、uasort、uksort。下面将逐个介绍这些函数及其使用技巧。
1. sort函数:对数组进行升序排序,并保持索引关系。示例代码如下:
$numbers = array(4, 2, 8, 6); sort($numbers); print_r($numbers);
输出结果为:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
2. rsort函数:对数组进行降序排序,并保持索引关系。示例代码如下:
$numbers = array(4, 2, 8, 6); rsort($numbers); print_r($numbers);
输出结果为:Array ( [0] => 8 [1] => 6 [2] => 4 [3] => 2 )
3. asort函数:对数组进行升序排序,但保持索引关系。示例代码如下:
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
asort($ages);
print_r($ages);
输出结果为:Array ( [Mary] => 27 [Peter] => 29 [John] => 32 )
4. arsort函数:对数组进行降序排序,并保持索引关系。示例代码如下:
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
arsort($ages);
print_r($ages);
输出结果为:Array ( [John] => 32 [Peter] => 29 [Mary] => 27 )
5. ksort函数:对数组按键进行升序排序,并保持索引关系。示例代码如下:
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
ksort($ages);
print_r($ages);
输出结果为:Array ( [John] => 32 [Mary] => 27 [Peter] => 29 )
6. krsort函数:对数组按键进行降序排序,并保持索引关系。示例代码如下:
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
krsort($ages);
print_r($ages);
输出结果为:Array ( [Peter] => 29 [Mary] => 27 [John] => 32 )
7. usort函数:使用自定义函数对数组进行排序。示例代码如下:
function compare($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$numbers = array(4, 2, 8, 6);
usort($numbers, "compare");
print_r($numbers);
输出结果为:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
8. uasort函数:使用自定义函数对数组进行排序,并保持索引关系。示例代码如下:
function compare($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
uasort($ages, "compare");
print_r($ages);
输出结果为:Array ( [Mary] => 27 [Peter] => 29 [John] => 32 )
9. uksort函数:使用自定义函数对数组的键进行排序,并保持索引关系。示例代码如下:
function compare($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$ages = array("Peter" => 29, "John" => 32, "Mary" => 27);
uksort($ages, "compare");
print_r($ages);
输出结果为:Array ( [John] => 32 [Mary] => 27 [Peter] => 29 )
使用这些排序函数时,可以根据实际情况选择合适的函数来排序数组。需要注意的是,某些函数在排序时会重置数组的索引关系,而某些函数会保持索引关系。在使用自定义函数进行排序时,可以根据具体的排序逻辑来编写自己的比较函数。
