JAY's ANSWER更新:
我做了你在link中所做的事情:
public function ShowTag()
{
$blog_tags = array();
$tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
$tag->execute();
while($row = $tag->fetch())
{
$blog_tags[] = $row['blog_tags'];
}
$final_anchors = "";
$final_tags = "";
foreach($blog_tags as $b)
{
$make_comma_seprated_tags_to_array = explode(",",$b);
$final_tags = array_merge($final_tags,$make_comma_seprated_tags_to_array);
}
foreach($final_tags as $f)
{
$final_anchors .= '<a href="'.$f.'">'.$f."</a>";
}
return $final_anchors;
}
但它给了我这些错误:
警告: array_merge():参数#1不是数组
$final_tags = array_merge($final_tags,$make_comma_seprated_tags_to_array);
警告:为foreach()提供的参数无效
foreach($final_tags as $f)
=============================================== ============================
我正在使用PHP来开发我的项目。基本上我有一个名为Blogs
的表格,其中包含有关我网站博客文章的一些信息:
现在我创建了一个页面,其中显示了博客帖子的所有标签。所以为了做到这一点,我编写了这个:
if(!empty($tags)){
print_r($tagShow);
$string = implode(',',$tagShow);
echo $string;
}else{
echo "There is no tag available right now!";
}
正如你所看到的,我指的是基本上这种方法的$tagShow
:
public function ShowTag()
{
$blog_tags = array();
$tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
$tag->execute();
while($row = $tag->fetch())
{
$blog_tags[] = $row['blog_tags'];
}
return $blog_tags;
}
它返回一个这样的数组:
Array ( [0] => asdsadsa,hello [1] => new,old )
这就是我使用implode
函数将其转换为字符串的原因:
asdsadsa,hello ,new,old
现在我想做的是用,符号分隔每个标签。因此,我可以在任何上添加超链接......
所以如果你知道怎么做,请帮助我。
提前致谢。
答案 0 :(得分:0)
public function ShowTag()
{
$blog_tags = array();
$tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
$tag->execute();
while($row = $tag->fetch())
{
$tags = explode(",",$row['blog_tags']);
$blog_tags=array_merge($blog_tags,$tags);
}
// $blog_tags have now all tags
$final_anchors="";
foreach($blog_tags as $b)
{
$final_anchors.='<a href="BASIC_URL'.$b.'">#'.$b."</a>";
}
return $final_anchors;
}
/ 我们也可以通过嵌套for循环来实现代码,但基本思想是相同的 /
http://sandbox.onlinephpfunctions.com/code/5670bf4019292d9cd06402c2fddeed17da9f7449 查看此链接以获取演示
答案 1 :(得分:0)
您已将$final_tags
作为字符串启动。必须是这样的:
$final_tags = [];