根据重复值对PHP数组进行排序

5
我有一个包含重复值的数组。我想对该数组进行排序,使具有最多重复项的值首先出现。以下是我的数组示例:
array(1, 2, 3, 2, 1, 2, 2);

我希望将这个数组按照其中重复元素的数量排序,排列成以下形式:
array(2, 1, 3);

'

'2'有最多的重复值,因此首先排序,其次是具有较少重复值的值。 有人知道我怎样才能实现这个吗?

'
2个回答

12
 $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

这太完美了!如果你想要不区分大小写的使用,可以这样做:$acv = array_count_values(array_map('strtolower', $array)); - Alex

0
  1. 遍历数组,并在另一个键值关联数组中递增出现次数。
  2. 按值对第二个数组进行排序。
  3. 获取第二个数组的array_keys。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接