我有单个帖子的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循环执行此操作时,如何从最后一个锚中删除逗号?
感谢您的想法和帮助!
答案 0 :(得分:3)
检查你的循环是否在最后一个循环中运行:
<?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; ?>
答案 1 :(得分:2)
什么是更高的成本,调用函数或设置变量?这可能是另一种方法,它设置一个变量并在结尾删除有问题的字符 - 没有额外的数学或者需要检查。
<?php
$tagoutput = '';
if ($tags) {
foreach ($tags as $tag)
$tagoutput .= '<a href="' . get_tag_link($tag) . '">' . $tag->name . '</a>, ';
$tagoutput = rtrim($tagoutput, ', ');
}
echo $tagoutput;
?>
答案 2 :(得分:1)
你可以反过来做(从第一个中删除它)。如果您的数组是数字,您可以尝试这样的事情:
<?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 ?>
答案 3 :(得分:0)
您也可以使用计数器尝试。
$values = array('value','value','value');
$count = count($values);
$i = 0;
foreach($values as $value){
$i++;
echo $value;
if($count > $i){
echo ', ';
}
}
输出:值,值,值