【问题标题】:Ordering PHP arrays based on duplicate values根据重复值对 PHP 数组进行排序
【发布时间】:2011-10-28 19:14:02
【问题描述】:

我有一个包含重复值的数组。我想对数组进行排序,以使重复次数最多的值排在第一位。这是我的数组的一个示例:

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

我想对该数组进行排序,以便它根据重复项的数量对自身进行排序:

array(2, 1, 3);

'2' 的重复次数最多,因此首先排序,其次是重复次数较少的值。有谁知道我如何做到这一点?

【问题讨论】:

    标签: php arrays sorting duplicates


    【解决方案1】:
     $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));
    【解决方案2】:
    1. 遍历数组,并在另一个键值关联数组中增加 OCCURENCES。
    2. 按值对第二个数组进行排序。
    3. 获取第二个数组的array_keys。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2017-09-15
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多