Как убрать последнюю запятую из цикла foreach? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь удалить последнюю запятую (,) из цикла foreach в php со следующим кодом

<?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 } 
?> 

Правильно, я получаю результат как

Здравствуйте, какСэм,

Но я хочу удалить последнюю запятую

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Поместив 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, ',');
0 голосов
/ 24 сентября 2019

Вы также можете использовать следующий код -

<?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 
} 
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...