【问题标题】:How to remove duplicate values from an array in PHP and count the occurrence?如何从 PHP 中的数组中删除重复值并计算出现次数?
【发布时间】:2009-08-05 05:54:36
【问题描述】:

如何从 PHP 中的数组中删除重复值并计算每个元素的出现次数? 我有这个数组

  • 酒吧

我希望结果是这样的数组

        value   freq

        ----    ----

        foo       2

        bar       1

谢谢

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    这么简单,php有功能

    $a=array("Cat","Dog","Horse","Dog");
        print_r(array_count_values($a));
    

    上面代码的输出将是:

    Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )  
    

    【讨论】:

      【解决方案2】:

      你想要array_count_values(),然后是array_unique()

      $arr = array('foo','bar','foo');
      print_r(array_count_values($arr));
      
      $arr = array_unique($arr);
      print_r($arr);
      

      给予:

      Array ( [foo] => 2 [bar] => 1 )
      Array ( [0] => foo [1] => bar ) 
      

      【讨论】:

      • 为什么需要 array_unique ?在 array_count_values 之后数组已经是唯一的
      • 是的。我的想法是,他需要使用与唯一值分开的计数,但你是对的,array_count_values() 确实为您提供了唯一的键列表,而 array_unique 为您提供了唯一的值列表。对 ahmeds 而言,他可能只需要 array_count_values()
      【解决方案3】:

      要从表中删除重复项,请使用array_unique() 函数。

      【讨论】:

      • 非常感谢,我知道这个功能但它不计算出现次数?
      【解决方案4】:

      可能是这样的(未经测试)

      $freq = array();
      foreach($arr as $val) {
          $freq[$val] = 0;
      }
      foreach($arr as $val) {
          $freq[$val]++;
      }
      

      【讨论】:

      • 其实安德鲁的方案更好。他是一次传球……我的脑袋没那么快:'(
      • 从头开始。 haim的sol'n pwns。 array_count_values
      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多