为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2019-05-22 16:19:50
想做一个搜索功能,用多个关键词搜索同一模型的同一字段(例如描述),每个关键词搜索出来一个集合,这些集合可能会有重复内容,我的想法是先将这些集合合并,然后去除重复信息。$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没有任何变化。求助大佬看看是哪里的问题?
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

仔细看文档,使用collapse方法
$collection=collect([[1,2,3],[4,5,6],[7,8,9]]);
$collapsed=$collection->collapse();
$collapsed->all();
                            
查看完整回答
反对 回复 2019-05-22
?
万千封印

TA贡献1891条经验 获得超3个赞

可以用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长度获得。
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 1082 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信