如何用PHP获取大多数freq项及其数组?

时间:2017-06-09 16:14:42

标签: php arrays

我有一个如下所示的数组。我想知道并打印此数组中最频繁的项目及其重复次数。

示例数组:

  

$tags = array("foo", "foo bar", "bar", "foo bar", "foo bar", "bar");

我在下面尝试过这段代码,但它没有计算完整的1项,它正在计算每个单词。举个例子:

输出:

bar: 5
foo: 4
..

我想要它:

foo bar: 3
bar: 2
..

我的代码:

function getWordCount($someArray)
{
    $wordList = array();
    foreach($someArray as $item) {
        $item = mb_strtolower($item, 'UTF-8');
        $wordList = array_merge($wordList, str_word_count($someArray[$i],1));
    }

    $result = array_count_values($wordList);
    arsort($result);

    return $result;
}

$i =0;
foreach(getWordCount($tags) as $key => $value){
  echo $value . ':' .$key . '<br>';
  $i++;
  if( $i == 10) break;
}

1 个答案:

答案 0 :(得分:1)

您可以使用array_count_values,并对其进行排序。的 Live demo

<?php 
  $tags = array("foo", "foo bar", "bar", "foo bar", "foo bar", "bar");
  $count = array_count_values($tags);
  asort($count);
  print_r(array_reverse($count));