删除foreach最后一项上的逗号


Remove comma on last item of foreach

我有一个WordPress标签循环的下一个代码:

<?php if ($tags) : foreach($tags as $tag): ?>
<a href="<?php echo get_tag_link($tag); ?>">
    <?php echo $tag->name; ?>
</a>, 
<?php endforeach; endif; ?>

我在最后一个锚上加了逗号。逗号后面还有空格。

当我使用foreach()PHP循环进行此操作时,如何从最后一个锚点中删除逗号?

感谢您的想法和帮助!

检查循环是否在最后一个上工作:

<?php if ($tags) : ?>
    <?php $count = count($tags); ?>
    <?php foreach($tags as $i => $tag): ?> 
        <a href="<?php echo get_tag_link($tag); ?>">
            <?php echo $tag->name; ?>
        </a>
        <?php if ($i < $count - 1) echo ", "; ?>
    <?php endforeach; ?>
<?php endif; ?>

调用函数或设置变量的成本更高?这可能是另一种方法,它设置一个变量并在末尾删除有问题的字符——不需要额外的数学运算,也不需要检查。

<?php
  $tagoutput = '';
  if ($tags) {    
    foreach ($tags as $tag)
      $tagoutput .= '<a href="' . get_tag_link($tag) . '">' . $tag->name . '</a>, ';
    $tagoutput = rtrim($tagoutput, ', ');
  }
  echo $tagoutput;
?>

您可以用另一种方法(将其从第一种方法中删除)。如果你的数组是数字的,你可以尝试这样的方法:

<?php if ($tags): ?>
    <?php foreach ($tags as $key => $tag): ?>
        <?php if ($key > 0): ?>,<?php endif ?>
        <a href="<?php echo get_tag_link($tag); ?>">
            <?php echo $tag->name; ?>
        </a>
    <?php endforeach ?>
<?php endif ?>

您也可以使用counter进行尝试。

$values = array('value','value','value');
        $count = count($values);
        $i = 0;
        foreach($values as $value){
            $i++;
            echo $value;
        if($count > $i){
            echo ', ';
        }
    }

输出:值,值,值