2011-12-31 65 views
13

什麼是正確的方式來處理版本控制指標,如2.42.4.0.9等,以獲得排序版本的能力。如何對版本信息進行排序

PHP說,1.3.4是不是一個有效的整數,但也是一個無效的數字。

array('2.4','2.3.4','2.4.0.9') 

回答

33

PHP有version_compare功能。使用usort對其進行排序。如下。 :)

$a = array('2.4','2.3.4','2.4.0.9'); 
usort($a, 'version_compare'); 
2

把它作爲一個字符串,使您可以使用version_compare()功能:

$versions = array('2.4','2.3.4','2.4.0.9'); 
usort($versions, 'version_compare'); 
+2

我想我在你們面前answerd了'usort'版本。您稍後編輯。 :P – 2011-12-31 22:18:09

4

或者,只是使用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) 
+0

如果版本可能包含「-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「 – 2017-06-09 05:42:17

相關問題