You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用sort()函数对数组排序失败,输出仅为1问题咨询

问题原因
  • sort() 是原地排序函数,会直接修改传入的数组本身,返回值仅为表示排序是否成功的布尔值:成功返回 true,失败返回 false。将返回值赋值后打印,布尔值 true 在PHP输出场景下会被自动转换为字符串 "1",这是输出仅显示1的核心原因。
  • 就算直接打印排序后的原数组,sort() 默认按字符串字典序排序,不会提取每个元素#前的数字做数值排序,依然无法实现预期的排序效果。
解决方法

使用自定义排序函数 usort() 实现按指定规则排序,排序完成后直接打印原数组即可,示例代码如下:

<?php
$data = '9#Saul,7#Jesse,1#Skyler,6#Walter';
$exp = explode(",",$data);
// 自定义比较逻辑,提取#前的数值做升序比较
usort($exp, function($a, $b) {
    $numA = intval(explode('#', $a)[0]);
    $numB = intval(explode('#', $b)[0]);
    return $numA <=> $numB;
});
print_r($exp);
?>

上述代码运行后输出结果符合预期:

Array
(
    [0] => 1#Skyler
    [1] => 6#Walter
    [2] => 7#Jesse
    [3] => 9#Saul
)

内容的提问来源于stack exchange,提问作者Aqu Akhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:27:02