2011-12-31 13 views
13

¿Cuál es la forma correcta de manejar los indicadores de versión como 2.4 o 2.4.0.9 etc. para tener la capacidad de ordenar las versiones.Cómo ordenar la información de versión

PHP dice que 1.3.4 no es un número entero válido, sino también un número no válido.

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

Respuesta

33

PHP tiene una función version_compare. Use usort para ordenarlo. Como siguiendo. :)

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

almacenarla como una cadena le permite hacer uso de la función version_compare():

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

Creo que respondidos a la versión 'usort' antes. Editó más tarde. : P –

4

O bien, sólo tiene que utilizar 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' es una mala elección si las versiones pueden contener' -RC1' u otros datos no numéricos: version_compare pondrá las versiones de RC antes que la estable (por ejemplo, "Twig-1.0.0-RC1", "Twig- 1.0.0-RC2 "," Twig-1.0.0 ") donde' netsort' devolverá un error "Twig-1.0.0", "Twig-1.0.0-RC1", "Twig-1.0.0-RC2" –

Cuestiones relacionadas