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

PHP中按字符串分割首段版本号排序关联数组的实现方法

PHP关联数组按子元素内版本号字段排序解决方案

你需要使用PHP自定义排序函数usort替换默认的asort,自己实现按|分割后首段版本号的比较逻辑,具体实现代码如下:

// 遍历外层数组时加&引用,直接修改原数组内容
foreach ($test_array as &$subArray) {
    usort($subArray, function($a, $b) {
        // 分割字符串取首段版本号
        $verA = explode('|', $a)[0];
        $verB = explode('|', $b)[0];
        // 用内置版本比较函数返回对比结果
        return version_compare($verA, $verB);
    });
}
// 解绑引用变量,避免后续操作数组时出现意外问题
unset($subArray);

原方案失效原因

asort会直接对整个字符串按字典序做比较,不会自动提取你需要的版本号字段,所以无法符合排序要求。

低版本PHP兼容写法

如果你的PHP版本低于5.4,不支持直接取explode返回数组的下标元素,可以调整回调内的写法:

usort($subArray, function($a, $b) {
    $a_parts = explode('|', $a);
    $verA = $a_parts[0];
    $b_parts = explode('|', $b);
    $verB = $b_parts[0];
    return version_compare($verA, $verB);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:27:02