0

我有一组标签存储在数据库中,以空格分隔为字符串。当我用 php 回显它们时,我会分解它们并用 for 循环遍历它们。

我的代码看起来像这样:

$tags = explode(' ',$c['art_tags']); for($i=0;$i<count($tags);$i++){ echo "<a href='#'>".$tags[$i]."</a>".", ";}

到目前为止,我只看到了使用 implode 的答案的帖子,但是如果我使用 implode,我将无法单击各个标签,因为它会是一个字符串..

所以我试图弄清楚当我为每个标签循环标签数组时如何去掉最后一个逗号。它最终会看起来像这样:

<a href="">tag1</a>,<a href="">tag2</a>,<a href="#">tag3</a> 
4

3 回答 3

2

使用array_map()+ implode()

<?php
$tags = explode(' ', $c['art_tags']);
$tags = array_map(function($tag){ return '<a href="#">' . $tag . '</a>'; }, $tags);

echo implode(', ', $tags);
?>

工作示例@PhpFiddle

于 2013-05-16T03:02:38.183 回答
1

您可以在 for 循环中将逗号更改为 echo 的开头,并实现一个条件来检查它是否是第一个标签......像这样:

<?php
$c='bob sally butch jim';

$tags = explode(' ',$c); 

for($i=0;$i<count($tags);$i++)
    { 
        if($i === 0)
            {
                echo "<a href='#'>" . $tags[$i] . "</a>";
            }

        else
            {
                echo ", <a href='#'>" . $tags[$i] . "</a>";
            }
    }
?>
于 2013-05-16T03:11:22.810 回答
0

您可以使用trim()rtrim();

于 2013-05-16T03:00:37.727 回答