目录

  1. PHP 数组排序概述
  2. 常见的数组排序函数
  3. 反向排序
  4. 参考资料与出站链接

PHP 数组排序概述

在 PHP 中,数组排序是常见的操作。PHP 提供了多种排序函数来按特定的方式排序数组。这些排序函数允许我们按升序或降序对数组进行排序,或者按键名排序。不同的排序函数适用于不同的场景,具体使用哪一个函数取决于我们需要排序的数组类型(如索引数组或关联数组)以及排序的需求(按值或按键排序)。


常见的数组排序函数

sort

sort() 函数用于对索引数组进行升序排序,默认按照值进行排序,重新索引数组的元素。排序后,数组的索引将是重新排列的。

示例:

<?php
$fruits = array("Banana", "Apple", "Orange");
sort($fruits);  // 升序排序
print_r($fruits);
?>

输出:

Array
(
    [0] => Apple
    [1] => Banana
    [2] => Orange
)

asort

asort() 函数用于对关联数组按值升序排序,保持键名与值的关联。它不会改变数组中的键名。

示例:

<?php
$person = array("John" => 25, "Jane" => 30, "Doe" => 20);
asort($person);  // 按值升序排序
print_r($person);
?>

输出:

Array
(
    [Doe] => 20
    [John] => 25
    [Jane] => 30
)

ksort

ksort() 函数用于对关联数组按键名升序排序,保持值与键名的关联。

示例:

<?php
$person = array("John" => 25, "Jane" => 30, "Doe" => 20);
ksort($person);  // 按键名升序排序
print_r($person);
?>

输出:

Array
(
    [Doe] => 20
    [Jane] => 30
    [John] => 25
)

usort

usort() 函数允许你使用自定义的比较函数对数组进行排序。它适用于任何类型的数组(包括索引数组和关联数组)。

示例:

<?php
$numbers = array(3, 2, 5, 1, 4);
usort($numbers, function($a, $b) {
    return $a - $b;  // 升序排序
});
print_r($numbers);
?>

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

array_multisort

array_multisort() 函数可以同时对多个数组进行排序,也可以按照不同的顺序(升序或降序)对多个数组进行排序。它特别适用于需要同时排序多个数组的场景。

示例:

<?php
$age = array(25, 30, 20);
$name = array("John", "Jane", "Doe");

array_multisort($age, SORT_ASC, $name);
print_r($age);
print_r($name);
?>

输出:

Array
(
    [0] => 20
    [1] => 25
    [2] => 30
)
Array
(
    [0] => Doe
    [1] => John
    [2] => Jane
)


反向排序

有时候,我们希望将数组进行降序排序。PHP 提供了反向排序的函数,例如 rsort()arsort()

  • rsort():对索引数组按值降序排序。
  • arsort():对关联数组按值降序排序。

示例(rsort):

<?php
$numbers = array(3, 2, 5, 1, 4);
rsort($numbers);  // 降序排序
print_r($numbers);
?>

输出:

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

示例(arsort):

<?php
$person = array("John" => 25, "Jane" => 30, "Doe" => 20);
arsort($person);  // 按值降序排序
print_r($person);
?>

输出:

Array
(
    [Jane] => 30
    [John] => 25
    [Doe] => 20
)


参考资料与出站链接


PHP 数组排序函数为我们提供了强大的排序功能,能够根据需求对数组进行多样化的排序,无论是升序、降序还是根据自定义规则排序,都能轻松实现。