从 laravel/blade 中的数组创建逗号分隔列表?

Posted

技术标签:

【中文标题】从 laravel/blade 中的数组创建逗号分隔列表?【英文标题】:Create comma separated list from array in laravel/blade? 【发布时间】:2017-04-02 02:50:15 【问题描述】:

我正在显示数组 @foreach($tags as $tag)$tag->@endforeach 的元素。输出为tag1tag2tag3。在tag1,tag2,tag3 中显示数组元素的可能方法是什么。以及如果数组中只有一个元素,如何不显示,

【问题讨论】:

检查内爆 - php.net/manual/en/function.implode.php 【参考方案1】:

使用这个。我们可以使用 $loop->last

来实现它
@foreach ($arrayOrCollection as $value)
    <span class="nice">
         $value->first_name 

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

【讨论】:

【参考方案2】:

所选答案太复杂。 Laravel 有一个更简单的解决方案:

 $items->pluck('tag')->implode(', ') 

【讨论】:

如何将每个元素包装在锚标记中?理想情况下,当列表“太长”时显示“...”?【参考方案3】:

我相信您正在寻找的可能是这样的: //在php标签中有你的数组 //$arr = ['一', '二', '三']; ? > //用foreach遍历数组,如果数组的计数不等于las元素,则在它后面加上逗号

@foreach ($arr as $key => $value)
    @if( count( $arr ) != $key + 1 )
         $value ,
     @else
         $value 
    @endif
@endforeach

【讨论】:

【参考方案4】:

implode() 适用于回显简单数据。在实际项目中,您通常希望在循环中添加一些 html 或逻辑,请使用自 5.3 起可用的 $loop 变量:

@foreach ($arrayOrCollection as $value)
     $loop->first ? '' : ', ' 
    <span class="nice"> $value->first_name </span>
@endforeach

【讨论】:

如果数组中只有一个元素逗号不会出现对吗? @ZacharyDale 是的,你是对的,在这种情况下你不会看到逗号。【参考方案5】:

试试 implode():

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

// 输出

one,two,three

【讨论】:

【参考方案6】:

implode 是一种选择,或者您也可以像这样使用 join

 join(', ', $tags)  

尝试第一个或这个.. 祝你好运

【讨论】:

【参考方案7】:

使用内爆:

 implode(', ', $tags) 

【讨论】:

在 Laravel 中,您经常处理 Collection 对象而不是原始 PHP 数组。在这些情况下,Collection 本身提供了一个 implode 方法。像 $user-&gt;sports-&gt;pluck('name')-&gt;implode(', ') 一样使用它

以上是关于从 laravel/blade 中的数组创建逗号分隔列表?的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历 Laravel Blade 模板中的嵌套数组

将 Laravel Blade 中的实时通知绑定为警报

Laravel/Blade,内容中的模板内容

从 Laravel Blade 中的 JSON 中选择值

Laravel 5.1 Blade - 循环数组直到其内部数组结束

Laravel Blade 中的全局变量