在下面创建函数getMostFrequentlyOccurringItem()
的最佳方法是什么?
//should return "paragraph"
echo getMostFrequentlyOccurringItem(array('line', 'paragraph', 'paragraph'));
//should return "line"
echo getMostFrequentlyOccurringItem(array('wholeNumber', 'line', 'line', 'line'));
//should return null
echo getMostFrequentlyOccurringItem(array('wholeNumber', 'wholeNumber', 'paragraph', 'paragraph'));
//should return "wholeNumber"
echo getMostFrequentlyOccurringItem(array('wholeNumber', '', '', ''));
function getMostFrequentlyOccurringItem($items) {
//...
}
感谢Adam,这是我完成的解决方案: http://tanguay.info/web/index.php?pg=codeExamples&id=396
答案 0 :(得分:8)
从array_count_values()
开始,按照您的喜好按摩输出。
php> =array_count_values(array('wholeNumber', 'line', 'line', 'line'))
array(
"wholeNumber" => 1,
"line" => 3,
)
arsort($counts, SORT_NUMERIC)
会首先对array_count_values()
输出进行排序。
答案 1 :(得分:1)
这是候选人,您可以申请the linear-time majority vote algorithm。
该链接对如何应用这种出色的简单算法进行了很好的解释。请注意,如果您确实要返回null以指示平局,则需要对数据进行两次传递而不是一次。
答案 2 :(得分:0)
如何实现key和counter的关联数组。
答案 3 :(得分:0)
将数组内嵌到以逗号或空格分隔的字符串中。然后使用preg_match(http://au2.php.net/manual/en/function.preg-match.php)查找指定字符串的出现次数。可以自定义模式以完全匹配或匹配!