Php Laravel比较多个集合?

Php Laravel比较多个集合?,php,laravel,Php,Laravel,如何比较多个集合的属性。我有以下代码 $games = Schedule::schedules()->where('gameTime', '>', Carbon::now())->get(); // returns a collection with 10+ arrays $picks = Pick::picks()->where('user_id', 1)->get(); // returns a collection with 0 to 4 arrays if

如何比较多个集合的属性。我有以下代码

$games = Schedule::schedules()->where('gameTime', '>', Carbon::now())->get();
// returns a collection with 10+ arrays
$picks = Pick::picks()->where('user_id', 1)->get();
// returns a collection with 0 to 4 arrays

if ($games->first()) {
    foreach ($games as $game) {
        // the following wont work but it's essentially what I want to do
        // compare $game->id to $pick->schedule_id
        if ($game->id == $pick->schedule_id) {
            $pick = Pick::picks()->where('user_id', 1)->where('schedule_id', '=', $game->id)->first();
            $pick->delete();
        }
    }
}
return 'picks deleted';

我想比较
foreach
循环中的
$game->id==$pick->schedule\u id

似乎您只想删除匹配的pick,我建议以下场景

// get the game ids
$games = Schedule::schedules()->where('gameTime', '>', Carbon::now())->lists('id');

// remove the picks
$check = Pick::picks()->where('user_id', 1)->whereIn('schedule_id', $games)->delete();

return 'picks deleted';

正是我想要的。必须在列表('id')中添加缺少的单引号不过。除此之外,这是完美的,没有额外的循环。