我在做什麼是這樣的:從DB排序一個數組的數值,而無需重新索引(PHP)
- 我得到的ID值(數值)的列表,並將其存儲到一個數組(1 ,2,...,)
- 然後我用
array_count_values
來計算重複項。這個輸出([1] => 1,[2] => 2,...) - 然後,我想通過計數降序重新排列陣列
- 然後我只是使用
array_keys($array)
來獲取ID在一個有序列表中。
我曾經使用array_multisort
作爲類似的功能,但在這種情況下,鍵是字符串('a'=> 2)。現在的問題是我使用數字鍵和多重排序將鍵重新索引到1,2,3,因爲保存計數值的鍵是數字ID。這當然螺絲的目的,因爲我不能確定什麼了..
無論如何,這裏就是我大致做現:
$array = array(3, 1, 2, 3, 2, 3);
// count the IDs [0]=>3, [1]=>1, [2]=>2
$count = array_count_values($array);
// sort and screw up the id's: [0]=>3 [1]=>1 [2]=>2
array_multisort($count);
有個聲音告訴我,有接近這更好的方法?
謝謝...這很簡單,但有沒有簡單的方法來排序它在降序列表中?我最初使用multisort是因爲這個。 – 2009-12-22 21:19:47
@ transient-jet-lag:您可以使用'arsort'('r' = reverse)或在'asort'之後使用'array_reverse'。 – Gumbo 2009-12-22 21:22:21