对纯数字数组排序,直接使用 sort() 函数即可。该函数默认按数值大小升序排列,直接修改原数组并返回布尔值。若需降序,使用 rsort();若需保持索引关联,使用 asort() 或 arsort()。

sort() 与 rsort() 的区别是什么
sort() 执行升序,rsort() 执行降序。两者都重新索引数组,将键重置为从 0 开始的整数序列。对于纯数字字符串组成的数组,它们会自动转换为数值进行比较,而非字符串字典序。

$arr = [3, 1, 4, 1, 5]; sort($arr); print_r($arr); // 输出: Array ( [0] => 1 [1] => 1 [2] => 3 [3] => 4 [4] => 5 ) $arr2 = [3, 1, 4, 1, 5]; rsort($arr2); print_r($arr2); // 输出: Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 1 [4] => 1 )
asort() 与 arsort() 的行为有何不同
asort() 按值升序排列,但保持键值关联。arsort() 按值降序排列,同样保持键值关联。这在需要保留原始索引(如关联数组或特定ID)时非常有用。

$arr = ['a' => 3, 'b' => 1, 'c' => 4]; asort($arr); print_r($arr); // 输出: Array ( [b] => 1 [a] => 3 [c] => 4 ) $arr2 = ['a' => 3, 'b' => 1, 'c' => 4]; arsort($arr2); print_r($arr2); // 输出: Array ( [c] => 4 [a] => 3 [b] => 1 )
当数组包含数字字符串时排序结果如何
当数组元素是数字字符串(如 "3", "1")时,sort() 和 rsort() 会将其视为数值进行排序,而不是字符串。这意味着 "10" 会排在 "2" 之前,因为 10 > 2。如果需要按字符串字典序排序,应使用 sort($arr, SORT_STRING)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











