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')中添加缺少的单引号代码>不过。除此之外,这是完美的,没有额外的循环。