【问题标题】:How to remove the last comma from foreach loop?如何从 foreach 循环中删除最后一个逗号?
【发布时间】:2020-01-24 17:23:36
【问题描述】:

我正在尝试使用以下代码从 php 中的 foreach 循环中删除最后一个逗号(,)

<?php

foreach ($snippet_tags as $tag_data) {
    $tags_id = $tag_data->tag_id;
    $tagsdata = $this->Constant_model->getDataOneColumn('tags', 'id', $tags_id);
    $tag_name=$tagsdata[0]->tag_name;
?>

<a href="<?= base_url() ?>tags/<?php echo $tag_name; ?>"><?php echo $tag_name; ?></a> ,       

<?php } 
?> 

是的,我得到了类似的结果

你好,怎么样,山姆,

但我想删除最后一个逗号

【问题讨论】:

  • @u_mulder 你检查正确了吗?我的问题与您链接的问题有关?
  • 为什么@u_mulder 的建议不起作用?
  • @RiggsFolly 是的,我同意了!
  • @RiggsFolly 这就像对 OP 的提示 - 使用搜索
  • 简单的解决方案:将链接保存在一个字符串中,然后创建一个链接数组,然后只需使用implode(' ,' $links_arr)

标签: php foreach


【解决方案1】:

通过将 HTML 放在一个简单的字符串变量中,然后在输出之前对结果字符串使用 rtrim(),这应该会从字符串中删除最终的 ,

<?php
$out = '';

foreach ($snippet_tags as $tag_data) {
    $tags_id = $tag_data->tag_id;
    $tagsdata = $this->Constant_model->getDataOneColumn('tags', 'id', $tags_id);
    $tag_name=$tagsdata[0]->tag_name;

    // move inside loop and amend to place in a simple string var
    $out .= '<a href="' . base_url() . 'tags/' . $tag_name . '">' . $tag_name . '</a>,';
?>

echo rtrim($out, ',');

【讨论】:

    【解决方案2】:

    你也可以使用下面的代码——

    <?php
    $numItems = count($snippet_tags);
    $i = 0;
    
    foreach ($snippet_tags as $tag_data) {
       $tags_id = $tag_data->tag_id;
       $tagsdata = $this->Constant_model->getDataOneColumn('tags', 'id', $tags_id);
       $tag_name=$tagsdata[0]->tag_name;
    ?>
    
    if(++$i === $numItems) 
       echo "<a href='base_url() ?>tags/<?php echo $tag_name;'> $tag_name</a>";
    else echo "<a href='base_url() ?>tags/<?php echo $tag_name;'> $tag_name</a> ,";     
    
    <?php 
    } 
    ?> 
    

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2015-08-05
      相关资源
      最近更新 更多