插件窝 干货文章 修改数组排序php

修改数组排序php

数组 排序 array 函数 956    来源:    2025-03-19

在 PHP 中,你可以使用多种方法来对数组进行排序。PHP 提供了多种内置的排序函数,可以根据不同的需求选择合适的函数。以下是一些常用的数组排序方法:

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

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

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
sort($array);
print_r($array);

输出:

Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
    [5] => 4
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 6
    [10] => 9
)

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

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

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
rsort($array);
print_r($array);

输出:

Array
(
    [0] => 9
    [1] => 6
    [2] => 5
    [3] => 5
    [4] => 5
    [5] => 4
    [6] => 3
    [7] => 3
    [8] => 2
    [9] => 1
    [10] => 1
)

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

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

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
asort($array);
print_r($array);

输出:

Array
(
    [1] => 1
    [3] => 1
    [6] => 2
    [0] => 3
    [9] => 3
    [2] => 4
    [4] => 5
    [8] => 5
    [10] => 5
    [7] => 6
    [5] => 9
)

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

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

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arsort($array);
print_r($array);

输出:

Array
(
    [5] => 9
    [7] => 6
    [4] => 5
    [8] => 5
    [10] => 5
    [2] => 4
    [0] => 3
    [9] => 3
    [6] => 2
    [1] => 1
    [3] => 1
)

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

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

$array = ["b" => 2, "a" => 1, "c" => 3];
ksort($array);
print_r($array);

输出:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

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

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

$array = ["b" => 2, "a" => 1, "c" => 3];
krsort($array);
print_r($array);

输出:

Array
(
    [c] => 3
    [b] => 2
    [a] => 1
)

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

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

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
usort($array, function($a, $b) {
    return $a <=> $b; // 升序排序
});
print_r($array);

输出:

Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
    [5] => 4
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 6
    [10] => 9
)

8. uasort() - 使用用户自定义的比较函数对数组进行排序并保持索引关联

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

$array = ["b" => 2, "a" => 1, "c" => 3];
uasort($array, function($a, $b) {
    return $a <=> $b; // 升序排序
});
print_r($array);

输出:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

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

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

$array = ["b" => 2, "a" => 1, "c" => 3];
uksort($array, function($a, $b) {
    return strcmp($a, $b); // 按键名升序排序
});
print_r($array);

输出:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

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

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

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

输出:

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

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

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

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

输出:

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

总结

PHP 提供了多种排序函数,可以根据不同的需求选择合适的函数。如果你需要自定义排序逻辑,可以使用 usort()uasort()uksort() 函数。