如何比较两个版本格式的字符串?这样:
version_compare("2.5.1", "2.5.2") => -1 (smaller)
version_compare("2.5.2", "2.5.2") => 0 (equal)
version_compare("2.5.5", "2.5.2") => 1 (bigger)
version_compare("2.5.11", "2.5.2") => 1 (bigger, eleven is bigger than two)
如何比较两个版本格式的字符串?这样:
version_compare("2.5.1", "2.5.2") => -1 (smaller)
version_compare("2.5.2", "2.5.2") => 0 (equal)
version_compare("2.5.5", "2.5.2") => 1 (bigger)
version_compare("2.5.11", "2.5.2") => 1 (bigger, eleven is bigger than two)
从 PHP 交互式提示使用该函数,自4.1version_compare
以来内置于 PHP :
php > print_r(version_compare("2.5.1", "2.5.2")); // expect -1
-1
php > print_r(version_compare("2.5.2", "2.5.2")); // expect 0
0
php > print_r(version_compare("2.5.5", "2.5.2")); // expect 1
1
php > print_r(version_compare("2.5.11", "2.5.2")); // expect 1
1
看来 PHP 已经按您的预期工作了。如果您遇到不同的行为,也许您应该指定这一点。
此外,您可以通过向version_compare()
if(version_compare('2.5.2', '2.5.1', '>')) {
print "First arg is greater than second arg";
}
请参阅version_compare了解更多查询。
如果您的版本比较不起作用,下面的代码将产生您的结果。
function new_version_compare($s1,$s2){
$sa1 = explode(".",$s1);
$sa2 = explode(".",$s2);
if(($sa2[2]-$sa1[2])<0)
return 1;
if(($sa2[2]-$sa1[2])==0)
return 0;
if(($sa2[2]-$sa1[2])>0)
return -1;
}