插件窝 干货文章 php+实现数组排序的方法

php+实现数组排序的方法

数组 排序 函数 进行 301    来源:    2025-03-19

在PHP中,数组排序是一个常见的操作。PHP提供了多种内置函数来实现不同类型的数组排序。以下是一些常用的数组排序方法:

1. sort() - 对数组进行升序排序

sort() 函数对数组进行升序排序,并重新索引数组的键。

$numbers = array(4, 2, 8, 6);
sort($numbers);
print_r($numbers);

输出:

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

2. rsort() - 对数组进行降序排序

rsort() 函数对数组进行降序排序,并重新索引数组的键。

$numbers = array(4, 2, 8, 6);
rsort($numbers);
print_r($numbers);

输出:

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

3. asort() - 对数组进行升序排序并保持索引关联

asort() 函数对数组进行升序排序,但保持键与值的关联。

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
asort($ages);
print_r($ages);

输出:

Array
(
    [Peter] => 35
    [Ben] => 37
    [Joe] => 43
)

4. arsort() - 对数组进行降序排序并保持索引关联

arsort() 函数对数组进行降序排序,但保持键与值的关联。

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
arsort($ages);
print_r($ages);

输出:

Array
(
    [Joe] => 43
    [Ben] => 37
    [Peter] => 35
)

5. ksort() - 对数组按键名进行升序排序

ksort() 函数对数组按键名进行升序排序。

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
ksort($ages);
print_r($ages);

输出:

Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)

6. krsort() - 对数组按键名进行降序排序

krsort() 函数对数组按键名进行降序排序。

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
krsort($ages);
print_r($ages);

输出:

Array
(
    [Peter] => 35
    [Joe] => 43
    [Ben] => 37
)

7. usort() - 使用用户自定义的比较函数对数组进行排序

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() - 使用用户自定义的比较函数对数组进行排序并保持索引关联

uasort() 函数允许你使用自定义的比较函数对数组进行排序,并保持键与值的关联。

function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
uasort($ages, "compare");
print_r($ages);

输出:

Array
(
    [Peter] => 35
    [Ben] => 37
    [Joe] => 43
)

9. uksort() - 使用用户自定义的比较函数对数组的键名进行排序

uksort() 函数允许你使用自定义的比较函数对数组的键名进行排序。

function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$ages = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
uksort($ages, "compare");
print_r($ages);

输出:

Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)

10. natsort() - 使用“自然排序”算法对数组进行排序

natsort() 函数使用“自然排序”算法对数组进行排序,适用于包含数字和字符串的数组。

$files = array("img12.png", "img10.png", "img2.png", "img1.png");
natsort($files);
print_r($files);

输出:

Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

11. natcasesort() - 使用“自然排序”算法对数组进行不区分大小写的排序

natcasesort() 函数使用“自然排序”算法对数组进行不区分大小写的排序。

$files = array("img12.png", "Img10.png", "img2.png", "Img1.png");
natcasesort($files);
print_r($files);

输出:

Array
(
    [3] => Img1.png
    [2] => img2.png
    [1] => Img10.png
    [0] => img12.png
)

总结

PHP提供了多种数组排序函数,可以根据不同的需求选择合适的排序方法。你可以根据数组的值、键名、自定义比较函数等进行排序,并且可以选择是否保持键与值的关联。