如何比较版本格式中的两个字符串?例如:
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)
u91tlkcl1#
从PHP交互提示符使用version_compare函数(自 4.1 起内置于PHP):
version_compare
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已经像你期望的那样工作了。如果你遇到了不同的行为,也许你应该指定它。
l7wslrjt2#
此外,您还可以通过向version_compare()传递一个额外的参数来使用PHP内置函数,如下所示
version_compare()
if(version_compare('2.5.2', '2.5.1', '>')) { print "First arg is greater than second arg"; }
更多查询请参见version_compare。
nx7onnlm3#
如果您的版本比较不起作用,下面的代码将生成您的结果。
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; }
3条答案
按热度按时间u91tlkcl1#
从PHP交互提示符使用
version_compare
函数(自 4.1 起内置于PHP):看起来PHP已经像你期望的那样工作了。如果你遇到了不同的行为,也许你应该指定它。
l7wslrjt2#
此外,您还可以通过向
version_compare()
传递一个额外的参数来使用PHP内置函数,如下所示更多查询请参见version_compare。
nx7onnlm3#
如果您的版本比较不起作用,下面的代码将生成您的结果。