通八洲科技

php中sort函数是什么

日期:2025-12-22 00:00 / 作者:冷漠man
sort() 函数对数组值升序排序并重置为数字索引,忽略原键名;通过 $flags 参数控制比较方式,如 SORT_REGULAR(默认)、SORT_STRING、SORT_NATURAL 等。

PHP 中的 sort() 是一个内置函数,用来对数组的**值(values)按升序重新排列**,并且直接修改原数组——不保留原来的数字键名,而是重置为从 0 开始的连续整数索引。

它最核心的特点

– 只管值,不管键;
– 升序是默认行为(降序用 rsort());
– 总是返回 true(PHP 8.2+),不是布尔真假判断依据;
– 原数组结构被“重排”,原有键名全部丢弃。

怎么控制排序方式?靠 flags 参数

第二个可选参数 $flags 决定 PHP 怎么比较两个值。常见组合有:

要注意的坑

– 混合类型数组(比如同时有字符串、数字、null)用 SORT_REGULAR 时结果可能出人意料;
– 关联数组如果想保留键值对应关系,别用 sort(),改用 asort()
– PHP 8.0+ 起,相等元素会保持原始顺序(稳定排序),之前版本不保证;
– 排序后内部指针自动回到第一个元素,遍历前不用手动 reset()。

一个典型例子

// 原数组
$fruits = ['banana', 'Apple', 'cherry', 'apple'];
// 不区分大小写的自然排序
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
// 结果:['Apple', 'apple', 'banana', 'cherry']

基本上就这些。用对 flag,就能让 sort 处理各种常见排序需求,不复杂但容易忽略细节。