比较 PHP 中的两个版本字符串

php
2022-08-30 19:38:16

如何比较版本格式的两个字符串?使得:

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)

答案 1

从使用version_compare函数的 PHP 交互式提示符开始,自 4.1 开始内置于 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似乎已经按照您的预期工作。如果您遇到不同的行为,也许您应该指定这一点。


答案 2

此外,您可以使用 PHP 内置函数,如下所示,方法是将额外的参数传递给version_compare()

if(version_compare('2.5.2', '2.5.1', '>')) {
 print "First arg is greater than second arg";
}

有关进步的查询,请参阅version_compare。


推荐