2011-08-17 169 views
5

我有一個包含重複值的數組。我想對數組進行排序,以便重複數最多的值先排在第一位。這裏是我的數組的例子:基於重複值排序PHP數組

array(1, 2, 3, 2, 1, 2, 2); 

我想,使其訂單本身基於重複量爲以下這個數組進行排序:

array(2, 1, 3); 

「2」的大部分副本等等它首先被排序,然後值被重新排序。有誰知道我能做到這一點?

回答

11
$acv=array_count_values($array); // 1=>2, 2=>3,3=>1 
arsort($acv); //save keys,   2=>3, 1=>2, 3=>1 
$result=array_keys($acv); //get only keys 2,1,3 
+0

完美的作品,謝謝 – hohner 2011-08-17 10:32:57

0
  1. 陣列,並且在另一個鍵值關聯陣列增量OCCURENCES橫動。
  2. 按值排序第二個數組。
  3. 獲得第二個數組的array_keys。