2011-12-31 13 views
13

Qual è il modo corretto, per gestire gli indicatori di versione come 2.4 o 2.4.0.9 ecc. Per ottenere la capacità di ordinare le versioni.Come ordinare le informazioni sulla versione

PHP afferma che lo 1.3.4 non è un numero intero valido, ma anche un numero non valido.

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

risposta

33

PHP ha una funzione version_compare. Utilizzare usort per ordinarlo. Mi piace seguire :)

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

Memorizzazione come una stringa permette di fare uso della funzione version_compare():

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

Credo answerd la versione 'usort' prima di voi. Hai modificato in seguito. : P –

4

Oppure, basta usare 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

'natsort' è una cattiva scelta se le versioni possono contenere' -RC1' o altri dati non numerici: version_compare metterà le versioni RC prima di quella stabile (es: "Twig-1.0.0-RC1", "Twig- 1.0.0-RC2 "," Twig-1.0.0 ") dove' netsort' restituirà "Twig-1.0.0", "Twig-1.0.0-RC1", "Twig-1.0.0-RC2" errati –

Problemi correlati