我有一个从MySQL数据库中获取的标签数组.显然,这些标签是字符串并存储在一个数组中,数组中有一个元素存储每个标签.为了构建我的标签云,我希望能够计算每个标签的出现次数以找到最常见的标签.
例如,如果我有下表...
tag1 tag1 hi bye gnu tux tag1 tux tux tag1 ... etc
...最常出现的标签是"tag1"我想要做的是计算该标签在阵列中出现的次数.Max()这里没有帮助,因为它只喜欢数值.
使用array_count_values
<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.array-count-values.php
如果您不希望使用区分大小写的版本:
$ar = array_count_values(array_map('strtolower', $ar));
Run Code Online (Sandbox Code Playgroud)
我怀疑你可以让你的数据库为你执行所有繁重的工作.听起来你正在获得一系列标签,也许就像这样
SELECT tag FROM mytable;
Run Code Online (Sandbox Code Playgroud)
但你可以做到这一点
SELECT tag,count(*) AS occurrences FROM mytable
GROUP BY tag
ORDER BY occurences;
Run Code Online (Sandbox Code Playgroud)
嘿presto,标签列表及其频率!