我有一个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 ', ';
}
}
输出:值,值,值