Search code examples
phploopsforeachstring-concatenation

Removing last comma from a foreach loop


I'm using a foreach loop to echo out some values from my database and separating each of them by commas. I don't know how to remove the last comma it adds on the last value.

My code is pretty simple, but I just can't seem to find the correct way of doing this:

foreach ($this->sinonimo as $s){ 
    echo '<span>'.ucfirst($s->sinonimo).',</span>';
}

Solution

  • Put your values in an array and then implode that array with a comma (+ a space to be cleaner):

    $myArray = array();
    foreach ($this->sinonimo as $s){ 
        $myArray[] = '<span>'.ucfirst($s->sinonimo).'</span>';
    }
    
    echo implode( ', ', $myArray );
    

    This will put commas inbetween each value, but not at the end. Also in this case the comma will be outside the span, like:

    <span>Text1<span>, <span>Text2<span>, <span>Text3<span>