如何合并两个数组,然后缩短结果数组,因为合并的数组值首先与键值无关

时间:2016-02-10 17:47:30

标签: php arrays laravel

$ community获取所有社区。 $ starred社区获得所有已加星标的社区。 然后两者合并。

以下是代码:

$communities = Community::all();
$starred_communities = StarredCommunity::where('user_id',1)->get();
$communities = $communities->merge($starred_communities);

我想结果数组应该在起始位置获得$ starred_communities。目前根据两个记录的主键缩短结果。

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

$communities = Community::all();
$starred_communities = StarredCommunity::where('user_id',1)->get();

$merged = $communities->toBase()->merge($starred_communities);

Illuminate\Database\Eloquent\Collection类使用Eloquent模型的key(默认情况下为id)作为索引,而Illuminate\Support\Collection并不关心这一点。

答案 1 :(得分:0)

尝试应该工作:

$communities = Community::get();
$starred_communities = StarredCommunity::where('user_id',1)->get();

$merged = $starred_communities->merge($communities);