我有一个数据库是这样的:PHP展示最热门的标签
+----+---------------------+
| id | tags |
+----+---------------------+
| 1 | test1, test2, test3 |
| 2 | test1, test2, test3 |
| 3 | test1, test2, test3 |
| 4 | test1, test2, test3 |
| 5 | buh1, buh2, buh3 |
+----+---------------------+
现在我想从这个数据库显示最热门的标签。我有一个功能,并将其与这样的阵列的工作原理:
$tag_array = array( 'test1, test2 test, test3', 'test2, test4, test2', 'buh, buh2, buh3');
功能:
function popularTags($tag_array) {
$p = array();
foreach($tag_array as $tags) {
$tags_arr = array_map('trim', explode(',', $tags));
foreach($tags_arr as $tag) {
$p[$tag] = array_key_exists($tag, $p) ? $p[$tag]+1 : 1;
}
}
arsort($p);
return $p;
}
这是如何显示最热门的标签:
foreach(popularTags($tag_array) as $tag=>$num)
{
echo $tag, " (", $num, ")<br />";
}
该作品到目前为止,与一个正常的数组。现在
,我想从数据库的标签,所以我从数据库中提取值和运行这样的功能:
$result = mysql_query("select * from DB ORDER BY date DESC");
while($row = mysql_fetch_array($result)){
$tag_array = $row["$tags"];
foreach(popularTags($tag_array) as $tag=>$num)
{
echo $tag, " (", $num, ")<br />";
}
}
这给我虽然一个错误:
Warning: Invalid argument supplied for foreach()
所以我的问题是如何使用此功能显示数据库中最流行的标签?
感谢
谢谢你,但是这太复杂了,现在 – 2by