2011-12-05 24 views
0

我有值的數組如下:這個數組如何排序?

0-10 
10-50 
50-100 
100-150 
150-200 
200+ 

這實際上是WordPress的分類法的陣列,其中WP排序字母(第一個數字的或升序),給我以下:

//notice how 50-100 gets pushed to the bottom, due to ascending order applied 
0-10 
10-50 
100-150 
150-200 
200+ 
50-100 

我只是想保持原始數組的秩序,因爲這些是特定情況下的範圍,最後50-100會干擾UI!

有誰知道一種方法來排序這個數組?

回答

1

對於PHP使用natsort()

$nums = array('10-50', '100-150', '0-10', '150-200', '50-100', '200+'); 
natsort($nums); 
var_dump($nums); 
+0

真棒! natsort做了這份工作!謝謝! –

1

解析字符串,將它們轉換爲數字,然後對第一個數字進行排序。這樣做的實際機制取決於您的編程語言。在C#中,你可以使用LINQ:

var strings = new[] { "0-10", "10-50", "100-150", "50-100", "200+", "150-200" }; 
var sorted = strings.OrderBy(s => int.Parse(s.Split('+', '-')[0])).ToArray();