猿问

laravel 怎么创建一个空集合并将其与一个非空集合合并?

想做一个搜索功能,用多个关键词搜索同一模型的同一字段(例如描述),每个关键词搜索出来一个集合,这些集合可能会有重复内容,我的想法是先将这些集合合并,然后去除重复信息。
$search_key_array=explode('',$keyword);
//创建一个空集合
$collection=collect([]);
foreach($search_key_arrayas$value){
$products=Product::where('description','like','%'.$value.'%')
->get();
if($products->isNotEmpty()){
$collection->concat($products);
}
}
//剔除重复内容,并重置数字索引
$collection=$collection->unique()->values();
由于需要一个初始空集合,我用collect()创建,然后用从文档里找到的concat方法把搜索到的集合追加到空集合上,结果我发现,用了这个concat()方法,$conllection没有任何变化。求助大佬看看是哪里的问题?
慕森卡
浏览 1083回答 2
2回答

慕神8447489

仔细看文档,使用collapse方法$collection=collect([[1,2,3],[4,5,6],[7,8,9]]);$collapsed=$collection->collapse();$collapsed->all();

万千封印

可以用splice:$a=collect([]);$a->splice(0,0,[0=>['k'=>'d'],1=>['k'=>'s']]);$a->splice(2,0,[0=>['k'=>'d2'],1=>['k'=>'s2']]);dd($a);循环的时候,第一个参数需要动态计算$a长度获得。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答