假设我有一个模型集合,我正在这样映射:
$alreadyImported = [];
$players = Players::whereNotIn('id', $alreadyImported)
->get()
->random(25)
->pluck('id');
$groups = $players->map(function ($item, $key) use ($alreadyImported) {
array_merge($alreadyImported, $item->id);
$group = [
'username' => $item['username'],
];
return $group;
});
// $groups is a pivot table with group and players
为什么$globalList
总是从[]
开始?如何将已合并的$globalList
带到下一个地图迭代?
玩家ID无关紧要。这是为了表演。我希望通过地图迭代传递数组。
答案 0 :(得分:2)
只需使用pluck()
从集合中获取ID:
$ids = $players->pluck('id');
或者,如果您只需要ID:
$ids = Players::where('banned', false)->pluck('id');
如果您要添加任何其他数据,则无需将其合并到某个数组或集合,因为map()
将创建新集合。
最后,您不需要使用collect()
,因为get()
将返回集合。