0

我在这个网站上使用了几个不同的帖子来弄清楚如何删除字符串中的最后一个逗号。显然这是一个经典问题,但我无法弄清楚为什么它在逗号之前添加了一个额外的空格,而不是在逗号之后添加一个预期的空格?

和往常一样,我一直在玩代码,但我不知道多余的空白是从哪里来的,请帮帮我,我快瞎了!

<?php $comma = ""; ?><?php foreach ($tags as $tag) { ?>
<?php echo $comma; ?><a href="<?php echo $tag['href']; ?>">
<?php echo $tag['tag']; ?></a><?php $comma = ","; ?>
4

3 回答 3

2

空白是由于<a>元素打开后 HTML 中的换行造成的。

更好的输出解决方案是:

<?php
$total = count( $tags);
$x = 0;
foreach ( $tags as $tag ){
    $x++;
    echo '<a href="' . $tag['href'] . '">' . $tag['tag'] . '</a>';
    if ( $x < $total ) echo ',';
}
?>
于 2012-05-07T00:33:58.203 回答
2

也许您的 HTML 代码中的 PHP 标记之间有一个空格...为什么不将其重写为如下内容:

<?php $comma = '';
foreach ($tags as $tag) {
    echo "$comma<a href='{$tag['href']}'>{$tag['tag']}</a>";
    $comma = ',';
} ?>
于 2012-05-07T00:35:54.813 回答
2

我宁愿这样写整个事情:

<?php
$tag_strings = array();
foreach ($tags as $tag)
    {
    $tag_strings[] = "<a href='" . $tag['href'] . "'>" . $tag['tag'] . "</a>";
    }
echo implode(',', $tag_strings);
于 2012-05-07T00:55:51.540 回答