运行查询后,我得到一系列结果(文章),其中每个结果都有id
,name
和tags
等属性。
这是我显示这些值的代码:
@foreach ( $results['matches'] as $doc => $docinfo )
...
{{$docinfo['attrs']['s_tags']}}
@endforeach
但问题是有些文章有很长的标签列表,例如:
"s_tags" => "Tech, geben, rasant, Wechsel, Pakete, Kunden, Details, Intel, Microsoft, Angebote, App, Web"
如何确保显示最多5个标签。所以在这种情况下它将是:
"Tech, geben, rasant, Wechsel, Pakete"
当然,如果有标签数少于5的文章,我想全部显示。
答案 0 :(得分:2)
{{ collect(explode(', ', $docinfo['attrs']['s_tags']))->take(5)->implode(', ') }}
,
上分解字符串以将其转换为数组collect
的集合,以获得流畅的可读api ,
上将其删除以获取以逗号分隔的列表答案 1 :(得分:1)
简单使用implode
和explode
以及array_slice()
{{ implode(', ',array_slice(explode(',',$docinfo['attrs']['s_tags']),0,5)) }}
内爆:将数组分解为字符串
爆炸:将字符串分解为数组
Array_slice:从带有限制
的数组中获取特定的元素切片答案 2 :(得分:0)
像这样使用array_slice()
:
我不知道你的标签数组。让它为$tag
。
$five = array_slice($tag, 0, 5);
答案 3 :(得分:0)
尝试这一点,它将有助于查询方
DB::table('articles')->chunk(5, function($results)
{
foreach ($results['matches'] as $doc => $docinfo)
{
{{$docinfo['attrs']['s_tags']}}
}
});