编程语言
首页 > 编程语言> > php 比较任意两个版本号大小/版本号对比算法

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;
        }
    }

标签:count,arr,return,version1,version2,版本号,算法,php
来源: https://blog.csdn.net/Jensen_love/article/details/119913307