php 7.1 中数组升序排序:索引数组用 sort() 重置键;关联数组按值排序用 asort() 保留键名,按键名排序用 ksort();自定义规则用 usort() 或 uasort()。

PHP 7.1 中将数组元素从小到大排序,用原生写法取决于数组类型和是否需要保留键名。
索引数组:用 sort() 重排并重置数字键
适用于纯数字下标、只关心值顺序的场景。该函数会直接修改原数组,并把键重置为从 0 开始的连续整数。
-
语法:
sort($array) -
示例:
$nums = [42, 7, 19, 3];<br>sort($nums);<br>// $nums 变为 [3, 7, 19, 42],键变为 0,1,2,3
关联数组:用 asort() 按值升序,保留原始键名
当数组带字符串键(如 ['a' => 42, 'b' => 7]),又想按值从小到大排,同时保持键值对应关系时使用。
-
语法:
asort($array) -
示例:
$scores = ['alice' => 85, 'bob' => 92, 'carol' => 76];<br>asort($scores);<br>// $scores 变为 ['carol'=>76, 'alice'=>85, 'bob'=>92],键没丢
按键名升序:用 ksort()
如果目标是让键(不是值)按字母或数字顺序排列,比如把 ['z'=>1, 'a'=>2] 排成 ['a'=>2, 'z'=>1],就用这个。
-
语法:
ksort($array) -
注意:它只看键,不管值大小;键是数字时也按字符串规则排序(即 10 会在 2 前面),如需数值键排序可用
uksort($array, 'strnatcmp')
自定义规则:用 usort() 或 uasort()
当排序逻辑复杂(比如按字符串长度、多维字段、忽略大小写),需自己写比较函数。
-
索引数组:
usort($array, function($a, $b) { return strlen($a) - strlen($b); }) -
关联数组(保键):
uasort($array, 'strcasecmp')(按值忽略大小写升序)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











