版本号对比
在公司的项目经常遇见版本对比的功能,自己总结分享下 给定两个版本号能快速区分大小
/**
* 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;
}
}
|