2011-08-17 142 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。