我有一个如下所示的数组。我想知道并打印此数组中最频繁的项目及其重复次数。
示例数组:
$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;
}
答案 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));