php 比较任意两个版本号大小/版本号对比算法

2021/8/25 17:06:30

本文主要是介绍php 比较任意两个版本号大小/版本号对比算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

版本号对比

在公司的项目经常遇见版本对比的功能,自己总结分享下

  /**
     * Description:php 版本号对比算法
     * 前面位数相等 位数多的大 (1.2.3.1  > 1.2.3)
     * User: Jensen
     * DateTime: 2021/8/25 15:24
     * @param $version1 版本号不带v 1.2.3.1
     * @param $version2 版本号不带v 1.2.3.4
     * @return int 1大于 2等于 3小于
     */
    public static function compareVersion($version1,$version2) : int{
        if($version1  == $version2){
            return 2;
        }
        $version1_arr = explode('.',$version1);
        $version2_arr = explode('.',$version2);

        //版本号对比
        for($i = 0;  $i < count($version1_arr);  $i++){
            //如果版本号不存在 证明前几位相等 则跳过号对比,进行位数对比
            if ( !isset( $version2_arr[ $i ] ) ) {
                continue;
            }
            if($version1_arr[$i]   ==  $version2_arr[$i]){
                continue;
            }
            if($version1_arr[$i]   <  $version2_arr[$i]){
                return 3;
            }
            if($version1_arr[$i]   >  $version2_arr[$i]){
                return 1;
            }
        }

        //位数对比
        if(count($version1_arr) != count($version2_arr) ){
            if( count($version1_arr)  >  count($version2_arr) ){
                return 1;
            }
            return 3;
        }
    }


这篇关于php 比较任意两个版本号大小/版本号对比算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程