2014-05-06 32 views
0

我的標籤數組,它包含鍵和值出現次數的前一個數組中的號碼:排序用數字和文本關聯數組由值

Array ([789] => 1 [sss] => 2 [aaa] => 3 [bbb] => 1 [taf] => 1) 

現在我想解決這陣由occurence 的號碼,我這樣做是通過使用以下命令:

array_multisort($array, SORT_DESC); 

它的工作原理,但它改變的關鍵「789」 0出於某種原因的價值,所以我得到了以下的輸出:

Array ([aaa] => 3 [sss] => 2 [taf] => 1 [0] => 1 [bbb] => 1) 

當我將789更改爲789時,會從數據庫中檢索值,它可以正常工作。 所以我認爲排序出錯了,因爲789是一個數字。 有沒有辦法達到預期的效果? 我試圖將789轉換爲字符串,但沒有結果。

+0

想知道爲什麼在'array_multisort()'中排序兩次? –

+0

好評,我不小心加了兩次。 – randomizer

回答

0

有一個功能特別用於此目的(諷刺),保留鍵而在按降序排序,這就是所謂的arsort();

arsort($array); 

輸出

Array 
(
    [aaa] => 3 
    [sss] => 2 
    [taf] => 1 
    [789] => 1 
    [bbb] => 1 
) 

DEMO

,因爲它在documentationarray_multisort()的問題:

關聯(字符串)鍵將被維持,但數字鑰匙將是 重新編制索引。

+0

這正是我所尋找的。 Thx爲答案。 – randomizer