从 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->sports->pluck('name')->implode(', ')
一样使用它以上是关于从 laravel/blade 中的数组创建逗号分隔列表?的主要内容,如果未能解决你的问题,请参考以下文章