Создать список, разделенный запятыми, из массива в laravel/blade?

Я отображаю элементы массива @foreach($tags as $tag)$tag->@endforeach. Выход tag1tag2tag3. Как можно вывести элементы массива в tag1,tag2,tag3. И как не показывать,, если в массиве всего один элемент.


person Zachary Dale    schedule 18.11.2016    source источник
comment
Проверьте имплод - php.net/manual/en/function.implode.php   -  person jitendrapurohit    schedule 18.11.2016


Ответы (7)



Выбранный ответ слишком сложен. У Laravel есть более простое решение:

{{ $items->pluck('tag')->implode(', ') }}
person Zentag    schedule 09.08.2018
comment
Как бы обернуть каждый элемент в тег привязки? И в идеале отображать... когда список слишком длинный? - person Salvis Blūzma; 29.03.2021

Использовать это. Мы можем реализовать это с помощью $loop->last.

@foreach ($arrayOrCollection as $value)
    <span class="nice">
        {{ $value->first_name }}

        @if( !$loop->last)
        ,
        @endif
    </span>
@endforeach
person Biswa    schedule 22.04.2020

Используйте взрыв:

{{ implode(', ', $tags) }}
person Mihai Matei    schedule 18.11.2016
comment
В Laravel вы часто имеете дело с объектами Collection вместо необработанных массивов PHP. В таких случаях Collection предоставляет сам метод implode. Используйте его как {{ $user->sports->pluck('name')->implode(', ') }} - person Thijs; 29.11.2017

implode - это один из вариантов, или вы можете использовать соединение, как это

{{ join(', ', $tags) }} 

Попробуйте первый или этот .. удачи

person anuraj    schedule 18.11.2016

Я считаю, что то, что вы ищете, может быть примерно таким: // ваш массив в тегах php // $arr = ['one', 'two', 'three']; ? > // проходим по массиву с foreach и если счетчик массива не равен элементу las то после него ставим запятую

@foreach ($arr as $key => $value)
    @if( count( $arr ) != $key + 1 )
        {{ $value }},
     @else
        {{ $value }}
    @endif
@endforeach
person dexuu    schedule 18.11.2016

Попробуйте взорвать():

$arr = ['one', 'two', 'three'];
echo implode(',', $arr);

// выход

one,two,three
person Mayank Pandeyz    schedule 18.11.2016