如何排序版本信息

mat*_*e64 18 php version-control version

什么是正确的方法,处理像2.42.4.0.9等版本指标,以获得排序版本的能力.

PHP说,这1.3.4不是一个有效的整数,但也是一个无效的数字.

array('2.4','2.3.4','2.4.0.9')
Run Code Online (Sandbox Code Playgroud)

Shi*_*dim 46

PHP有一个version_compare函数.使用usort对其进行排序.喜欢以下.:)

$a = array('2.4','2.3.4','2.4.0.9');
usort($a, 'version_compare');
Run Code Online (Sandbox Code Playgroud)


小智 5

将其存储为字符串可以让您使用该version_compare()函数:

$versions = array('2.4','2.3.4','2.4.0.9');
usort($versions, 'version_compare');
Run Code Online (Sandbox Code Playgroud)

  • 我想我在你之前回答了“usort”版本。你后来编辑了。:P (2认同)

ben*_*sch 5

或者,只需使用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 )
Run Code Online (Sandbox Code Playgroud)

  • 如果版本中可能包含-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” (2认同)