2012-10-29 28 views
0

我有一個PHP腳本像這樣的數組:PHP - 如何排序與值分別爲「+1」,一個數組「-20」

array (

"+15" => 5, 
"-5" => 20, 
"+2" => 2, 
"-1" => 9 

) 

的鑰匙都是獨一無二的(+15等)。我想用鑰匙所以這個排序:

foreach($array as $k => $v) { 

echo $k . ' has a count of ' . $v; 

} 

上用+和-'s鍵排序任何想法。我不能獲取正常工作

回答

1

natsort()會工作嗎?

從php.net:

<? 
    $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); 

    asort($array1); 
    echo "Standard sorting\n"; 
    print_r($array1); 

    natsort($array2); 
    echo "\nNatural order sorting\n"; 
    print_r($array2); 
?> 

輸出:

Standard sorting 
Array 
(
    [3] => img1.png 
    [1] => img10.png 
    [0] => img12.png 
    [2] => img2.png 
) 

Natural order sorting 
Array 
(
    [3] => img1.png 
    [2] => img2.png 
    [1] => img10.png 
    [0] => img12.png 
) 
使用`uksort($陣列, 'INTVAL')
2

你可以只使用ksort,(你的鑰匙全部數字字符串,它們將被視爲整數。)

ksort($array); 
var_dump($array); 

結果:

array(4) { 
    [-5]=> 
    int(20) 
    [-1]=> 
    int(9) 
    ["+2"]=> 
    int(2) 
    ["+15"]=> 
    int(5) 
} 
+0

;'但首先在$陣列I中使用的'-'籤負數,但沒有'+'加正號的正數,它工作正常。謝謝 – slycat