两个foreach()里面的implode()

时间:2015-02-12 19:45:41

标签: php laravel

我有以下代码:

@foreach ($artists as $artist)
    <td>{{ $artist->id }}</td>
    <td>{{ $artist->title }}</td>
    <td>
        @foreach ($artist->tags as $tag)
            {{ $tag->id }}
        @endforeach
    </td>
@endforeach

如何使用$tag->id使用逗号正确输出每个implode()

试图这样做:

@foreach ($artist->tags as $tag)
    <?php $arr[] = $tag->id ?>
@endforeach
{{ implode(", ", $arr) }}

但由于2 foreach()我正在重复标记。

3 个答案:

答案 0 :(得分:2)

您可以在此处使用Laravels lists()功能。它将生成所有标记ID的数组:

{{ implode(', ', $artist->tags->lists('id')) }}

答案 1 :(得分:1)

我认为您的问题是在添加标签之前,您没有清理阵列。在您输入第二个foreach之前,请创建一个新的arr []。

答案 2 :(得分:1)

您可以覆盖$arr中的密钥:

@foreach ($artist->tags as $tag)
    <?php $arr[$tag->id] = $tag->id; // <-- HERE ?>
@endforeach
{{ implode(", ", $arr) }}