在公司的项目经常遇见版本对比的功能,自己总结分享下
/** * 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; } }