where(function ($query) use ($team_id, $team_position) { switch ($team_position) { case 'home': return $query->where('home_id', '=', $team_id); case 'away': return $query->where('away_id', '=', $team_id); default: return $query->where('home_id', '=', $team_id) ->orWhere('away_id', '=', $team_id); } })->get(); $matches_count = $matches->count(); $positions_map = LoadPositions::load(); $player_name_map = []; $res = StatistikoDetail::where('ss_team_id', $team_id)->get(); foreach ($res as $val) { $player_name_map[$val->ss_player_id]['name'] = $val->player_name; $player_name_map[$val->ss_player_id]['pos'] = $val->position; $player_name_map[$val->ss_player_id]['foot'] = $val->preferred_foot; } $arr = []; foreach ($matches as $match) { $players = StatistikoPlayer::where('match_id', $match->match_id)->get(); foreach ($players as $val) { $ss_player_id = (int) $val->ss_player_id; if (isset($player_name_map[$ss_player_id])) { $activeteam_id = (int) $val->activeteam_id; $minutes_played = (int) $val->minutes_played; if (! isset($arr[$ss_player_id])) { self::array_template($arr, $ss_player_id); $arr[$ss_player_id]['player_name'] = $player_name_map[$ss_player_id]['name'] ?? ''; $arr[$ss_player_id]['preferred_foot'] = $player_name_map[$ss_player_id]['foot'] ?? ''; $arr[$ss_player_id]['player_position'] = $player_name_map[$ss_player_id]['pos'] ?? ''; $arr[$ss_player_id]['color_level'] = round($matches_count / 3); } if ($activeteam_id == $match->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; } elseif ($activeteam_id == $match->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; } } } } $result = []; foreach ($arr as $player_id => $val) { switch ($team_position) { case 'home': $events_played = $val['events_played_home']; $minues_played = $val['minutes_played_home']; break; case 'away': $events_played = $val['events_played_away']; $minues_played = $val['minutes_played_away']; break; default: $events_played = $val['events_played_home'] + $val['events_played_away']; $minues_played = $val['minutes_played_home'] + $val['minutes_played_home']; break; } $colorlevel = round($matches_count / 3); if (in_array($val['player_position'], $positions_map['MIDFIELD'])) { $position = 'MIDFIELD'; } elseif (in_array($val['player_position'], $positions_map['DEFENCE'])) { $position = 'DEFENCE'; } elseif (in_array($val['player_position'], $positions_map['ATTACK'])) { $position = 'ATTACK'; } elseif (in_array($val['player_position'], $positions_map['GOALKEEPER'])) { $position = 'GOALKEEPER'; } else { $position = 'NO SPECIFIC POSITION'; } $infostring = ''; if ($colorlevel > 1 && $events_played < $colorlevel) { $infostring = '