【发布时间】:2012-01-31 05:26:45
【问题描述】:
什么是正确的方法,处理诸如2.4或2.4.0.9等版本控制指标以获得对版本进行排序的能力。
PHP 说,1.3.4 不是一个有效的整数,也是一个无效的数字。
array('2.4','2.3.4','2.4.0.9')
【问题讨论】:
标签: php version-control version
什么是正确的方法,处理诸如2.4或2.4.0.9等版本控制指标以获得对版本进行排序的能力。
PHP 说,1.3.4 不是一个有效的整数,也是一个无效的数字。
array('2.4','2.3.4','2.4.0.9')
【问题讨论】:
标签: php version-control version
PHP 有一个version_compare 函数。使用usort 对其进行排序。跟下面一样。 :)
$a = array('2.4','2.3.4','2.4.0.9');
usort($a, 'version_compare');
【讨论】:
或者,只需使用natsort:
$array = array('2.4','2.16.6','2.3.4','2.4.0.9');
natsort($array);
print_r($array);
#Array ( [2] => 2.3.4 [0] => 2.4 [3] => 2.4.0.9 [1] => 2.16.6 )
【讨论】:
-RC1 或其他非数字数据,natsort 是一个糟糕的选择:version_compare 会将 RC 版本放在稳定版本之前(例如:“Twig-1.0.0-RC1” , "Twig-1.0.0-RC2", "Twig-1.0.0") 其中netsort 将返回错误的 "Twig-1.0.0", "Twig-1.0.0-RC1", "Twig-1.0. 0-RC2"
将其存储为字符串允许您使用version_compare() 函数:
$versions = array('2.4','2.3.4','2.4.0.9');
usort($versions, 'version_compare');
【讨论】:
usort 版本。您稍后编辑。 :P