2011-12-31 36 views
13

Cách thích hợp là xử lý các chỉ báo phiên bản như 2.4 hoặc 2.4.0.9 v.v. để có khả năng sắp xếp các phiên bản.Cách sắp xếp thông tin phiên bản

PHP cho biết, rằng 1.3.4 không phải là số nguyên hợp lệ, mà còn là số không hợp lệ.

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

Trả lời

33

PHP có một chức năng version_compare. Sử dụng usort để sắp xếp. Như sau. :)

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

lưu trữ nó như là một chuỗi cho phép bạn tận dụng các version_compare() chức năng:

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

Tôi nghĩ tôi thưa: phiên bản 'usort' trước khi bạn. Bạn đã chỉnh sửa sau. : P –

4

Hoặc, chỉ cần sử dụng 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' là lựa chọn không đúng nếu các phiên bản có thể chứa' -RC1' hoặc dữ liệu không phải là số khác: version_compare sẽ đặt phiên bản RC trước phiên bản ổn định (ví dụ: "Twig-1.0.0-RC1", "Twig- 1.0.0-RC2 "," Twig-1.0.0 ") trong đó' netsort' sẽ trả về sai "Twig-1.0.0", "Twig-1.0.0-RC1", "Twig-1.0.0-RC2" –

Các vấn đề liên quan