Как обрезать запятую в конце сроки?
Не проще ли сделать сразу на php?
Выражение будет поставлять запятую везде кроме последнего, но нужно инициализировать индекс ($i) за пределами foreachcount($new->tags) != ++$i ? "," : "";<?php $i = 0; ?>
<?php foreach ($new->tags as $tag):?>
  <span  data-id = "<?= $tag->id ?>"><?= $tag->name ?><?=count($new->tags) != ++$i ? "," : ""?></span>
<?php endforeach; ?>
А зачем в php добавлять запятые, нельзя на внешке (при выводе) это сделать с готовым списком тегов. Добавить ко всем, кроме последнего
Кстати, решение вашей проблемы здесь