软件/系统版本号列表排序

来源:赵克立博客 分类: PHP 标签:PHPPHP数组发布时间:2022-10-15 21:36:08最后更新:2022-10-15 21:36:08浏览:1193
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2022-10-15 21:36:08
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
/**
 * 版本号排序
 * @param array $versions
 * @param bool  $sortAsc
 * @return array
 */
public static function sortVersion(array $versions, bool $sortAsc = true): array
{
    foreach ($versions as $key => $value) {
        $firstArr      = explode('.', $value);
        $firstArrCount = count($firstArr);
        for ($i = 0; $i < $firstArrCount; $i++) {
            // 填充长度要匹配版本数字最大值的的长度来设定,
            $firstArr[$i] = str_pad($firstArr[$i], 6, 0, STR_PAD_LEFT);
        }
        $versions[$key] = implode('.', $firstArr);
    }
    if ($sortAsc) {
        sort($versions);
    } else {
        rsort($versions);
    }

    foreach ($versions as $key => $value) {
        $firstArr      = explode('.', $value);
        $firstArrCount = count($firstArr);
        for ($i = 0; $i < $firstArrCount; $i++) {
            $firstArr[$i] = intval($firstArr[$i]);
        }
        $versions[$key] = implode('.', $firstArr);
    }
    return $versions;
}

降序

2210151665840865331878.png

升序

2210151665840896892027.png


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python