get(); $player_ids = []; foreach ($players as $player) { $player_ids[] = $player->ss_player_id; } $arr = []; if (is_array($season)) { $matches_for_season = StatistikoEvent::whereIn('season', $season)->pluck('match_id')->toArray(); $res = StatistikoPlayer::with('details')->whereIn('match_id', $matches_for_season)->whereIn('ss_player_id', $player_ids)->get(); } else { $res = StatistikoPlayer::with('details')->whereIn('ss_player_id', $player_ids)->get(); } foreach ($res as $val) { $ss_player_id = (int) $val->ss_player_id; $activeteam_id = (int) $val->activeteam_id; $minutes_played = (int) $val->minutes_played; $home_id = (int) $val->event->home_id; $away_id = (int) $val->event->away_id; $startime = $val->event->starttime; if ($startime->greaterThan(now()->subDays(180))) { $last_180_days = true; } else { $last_180_days = false; } if (! isset($arr[$ss_player_id])) { self::array_template($arr, $ss_player_id); } if ($activeteam_id == $home_id) { $arr[$ss_player_id]['events_played_home'] += 1; $arr[$ss_player_id]['minutes_played_home'] += $minutes_played; $arr[$ss_player_id]['events_played_home'] += 1; $arr[$ss_player_id]['minutes_played_home'] += $minutes_played; if ($last_180_days) { $arr[$ss_player_id]['events_played_home'] += 1; $arr[$ss_player_id]['minutes_played_home'] += $minutes_played; } } elseif ($activeteam_id == $away_id) { $arr[$ss_player_id]['events_played_away'] += 1; $arr[$ss_player_id]['minutes_played_away'] += $minutes_played; $arr[$ss_player_id]['events_played_away'] += 1; $arr[$ss_player_id]['minutes_played_away'] += $minutes_played; if ($last_180_days) { $arr[$ss_player_id]['events_played_away'] += 1; $arr[$ss_player_id]['minutes_played_away'] += $minutes_played; } } $cards = $val->card_yellow + $val->card_yellowred; if ($season == 'last180days' && $last_180_days) { $arr[$ss_player_id]['ss_player_id'] = $ss_player_id; $arr[$ss_player_id]['total_events']++; $arr[$ss_player_id]['total_min'] += $minutes_played; $arr[$ss_player_id]['average_min'] = round($arr[$ss_player_id]['total_min'] / $arr[$ss_player_id]['total_events']); $arr[$ss_player_id]['goals'] += $val->goals; $arr[$ss_player_id]['fouls'] += $val->fouls; $arr[$ss_player_id]['cards'] += $cards; $arr[$ss_player_id]['offsides'] += $val->offsides; $arr[$ss_player_id]['shots_on_target'] += $val->shots_on_target; $arr[$ss_player_id]['shots_off_target'] += $val->shots_off_target; $arr[$ss_player_id]['shots_blocked'] += $val->shots_blocked; $arr[$ss_player_id]['total_shots'] += $val->shots_on_target + $val->shots_off_target + $val->shots_blocked; } if ($season != 'last180days') { $arr[$ss_player_id]['ss_player_id'] = $ss_player_id; $arr[$ss_player_id]['total_events']++; $arr[$ss_player_id]['total_min'] += $minutes_played; $arr[$ss_player_id]['average_min'] = round($arr[$ss_player_id]['total_min'] / $arr[$ss_player_id]['total_events']); $arr[$ss_player_id]['goals'] += $val->goals; $arr[$ss_player_id]['fouls'] += $val->fouls; $arr[$ss_player_id]['cards'] += $cards; $arr[$ss_player_id]['offsides'] += $val->offsides; $arr[$ss_player_id]['shots_on_target'] += $val->shots_on_target; $arr[$ss_player_id]['shots_off_target'] += $val->shots_off_target; $arr[$ss_player_id]['shots_blocked'] += $val->shots_blocked; $arr[$ss_player_id]['total_shots'] += $val->shots_on_target + $val->shots_off_target + $val->shots_blocked; } } foreach ($players as $value) { if (isset($arr[$value->ss_player_id])) { $arr[$value->ss_player_id]['position'] = $value->position; $arr[$value->ss_player_id]['player_name'] = $value->player_name; $arr[$value->ss_player_id]['preferred_foot'] = $value->preferred_foot; } } Log::debug('hall', $arr); return $arr; } public static function array_template(array &$arr, int $ss_player_id) { $arr[$ss_player_id]['ss_player_id'] = 0; $arr[$ss_player_id]['total_events'] = 0; $arr[$ss_player_id]['total_min'] = 0; $arr[$ss_player_id]['average_min'] = 0; $arr[$ss_player_id]['events_played_home'] = 0; $arr[$ss_player_id]['events_played_away'] = 0; $arr[$ss_player_id]['minutes_played_home'] = 0; $arr[$ss_player_id]['minutes_played_away'] = 0; $arr[$ss_player_id]['goals'] = 0; $arr[$ss_player_id]['fouls'] = 0; $arr[$ss_player_id]['offsides'] = 0; $arr[$ss_player_id]['shots_on_target'] = 0; $arr[$ss_player_id]['shots_off_target'] = 0; $arr[$ss_player_id]['shots_blocked'] = 0; $arr[$ss_player_id]['total_shots'] = 0; $arr[$ss_player_id]['cards'] = 0; } }