如何在 Laravel Blade 中始终显示句子中的 5 个单词(标签)
How to display always 5 words (tags) from a sentence in Laravel Blade
在 运行 查询后,我得到一组结果(文章),其中每个结果都有其属性,例如 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的文章,我想全部显示。
{{ collect(explode(', ', $docinfo['attrs']['s_tags']))->take(5)->implode(', ') }}
- 分解
,
上的字符串,将其变成数组
- 将它变成一个集合
collect
以获得流畅的可读性 api
- 最多取5个元素
- 将其嵌入
,
以恢复逗号分隔列表
像这样使用array_slice()
:
我不知道你的标签数组。让它成为 $tag
.
$five = array_slice($tag, 0, 5);
简单使用implode
和explode
和array_slice()
{{ implode(', ',array_slice(explode(',',$docinfo['attrs']['s_tags']),0,5)) }}
内爆: 将数组分解为字符串
分解:将字符串分解成数组
Array_slice : 从具有限制的数组中获取元素的特定切片
试试这个,它对查询方面有帮助
DB::table('articles')->chunk(5, function($results)
{
foreach ($results['matches'] as $doc => $docinfo)
{
{{$docinfo['attrs']['s_tags']}}
}
});
在 运行 查询后,我得到一组结果(文章),其中每个结果都有其属性,例如 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的文章,我想全部显示。
{{ collect(explode(', ', $docinfo['attrs']['s_tags']))->take(5)->implode(', ') }}
- 分解
,
上的字符串,将其变成数组 - 将它变成一个集合
collect
以获得流畅的可读性 api - 最多取5个元素
- 将其嵌入
,
以恢复逗号分隔列表
像这样使用array_slice()
:
我不知道你的标签数组。让它成为 $tag
.
$five = array_slice($tag, 0, 5);
简单使用implode
和explode
和array_slice()
{{ implode(', ',array_slice(explode(',',$docinfo['attrs']['s_tags']),0,5)) }}
内爆: 将数组分解为字符串
分解:将字符串分解成数组
Array_slice : 从具有限制的数组中获取元素的特定切片
试试这个,它对查询方面有帮助
DB::table('articles')->chunk(5, function($results)
{
foreach ($results['matches'] as $doc => $docinfo)
{
{{$docinfo['attrs']['s_tags']}}
}
});