2011-12-09 73 views
0

我有一個字符串數組一個:PHP排序值範圍

0 - 5 50-100 10-50 150-250 100-150

現在我想這些自動排序到:

0-5 10-50 50-100 100-150 150-250

將如何我去解決這個問題?

回答

2

您需要使用natsort()功能。它數值進行排序「作爲一個人」 :)

$input = array('0-5', '50-100', '10-50', '150-250', '100-150'); 
natsort($input); 
print_r($input); 
4

http://www.php.net/manual/en/function.natsort.php 排序使用 「自然順序」 算法

$a = array("0-5", "50-100", "10-50", "150-250", "100-150"); 
natsort($a); 
print_r($a); 

結果數組:

Array 
(
    [0] => 0-5 
    [2] => 10-50 
    [1] => 50-100 
    [4] => 100-150 
    [3] => 150-250 
) 

注:該密鑰將保持不變,不會重新編號。

時,這是不期望的結果,您可能希望排序後自行將其重新編號:

foreach ($a as $v) 
    $new_a[] = $v; 
$a = $new_a; 

甚至更​​好:(THX @liquorvicar)

$a = array_values($a); 
+0

如果要重新編號最後的陣列,它更容易只是爲了呼籲它array_values(),即$ new_a = array_values($ A); – liquorvicar