如何在帖子表中显示热门标签(#)?
我有1个表格帖子= tb_post
post_id | post | uid
1 | blabla #one | 01
2 | wew #two | 01
3 | nice #one | 02
4 | great #one | 02
5 | excellent #one | 01
-
在该示例中,我们知道#one将是最顶层的标签。如何显示顶部#hashtag< - Just hashtag不包含其他文本。例如:
TOP HASHTAG : #one
到目前为止我的查询:
SELECT DISTINCT post
FROM tb_post
WHERE post LIKE '%#%'
GROUP BY post
答案 0 :(得分:3)
我不小心点击了帖子。 downvotes可以等到我结束吗?
在PHP中,获取数组中post
的所有值,因此您将拥有:
Array (
blabla #one
wew #two
nice #one
great #one
excellent #one
)
现在,使用implode(" ", $posts)
加入所有数组项,它会为您提供一个字符串:
blabla #one wew #two nice #one great #one excellent #one
使用explode(" ", $posts)
拆分。现在,检查以#
开头的值。将它们添加为数组索引并增加计数!现在,您有了增加计数的代码!你现在可以这样做:
<?php
$posts = explode(" ", "blabla #one wew #two nice #one great #one excellent #one");
$rank = array();
foreach ($posts as $post)
if (strpos("#", $post))
if (!isset($rank[$post]))
$rank[$post] = 1;
else
$rank[$post]++;
?>
甚至可以通过这种方式使用函数array_count_values($hashes)
:
<?php
$posts = explode(" ", "blabla #one wew #two nice #one great #one excellent #one");
$hashes = array();
foreach ($posts as $post)
if (strpos("#", $post))
$hashes[] = $post;
?>
现在使用array_sort()
或其他东西按降序对数组进行排序,并将其用于排名!
Downvoters,你可以检查并还原那些吗?