pluck('ss_player_id')->toArray(); $players = SofaScorePlayerPerSeason::with('details')->where('season', 'total')->whereIn('ss_player_id', $team_player_ids)->get(); $result = []; foreach ($players as $val) { if ($val->details != null && $val->details->is_active) { $tmp = []; $tmp['id'] = $val->ss_player_id; if (! isset($val->details)) { $tmp['name'] = $val->ss_player_id; $tmp['pos_ori'] = 'GK'; $tmp['foot'] = 'Both'; } else { $tmp['name'] = $val->details->player_name; $tmp['pos_ori'] = $val->details->position; $tmp['foot'] = $val->details->preferred_foot; } $tmp['pos'] = ''; $tmp['active'] = 0; $tmp['tot_evt'] = $val->total_events; $tmp['tot_min'] = $val->total_min; $tmp['ave_min'] = $val->average_min; $tmp['gls'] = $val->goals; $tmp['fls'] = $val->fouls; $tmp['ofs'] = $val->offsides; $tmp['crd'] = $val->cards; $tmp['snt'] = $val->shots_on_target; $tmp['tsh'] = $val->shots_off_target; $level = round($val->total_events / 3); if ($val->total_events) { if ($level > 1 && $val->total_events < $level) { $tmp['color_evt'] = 'danger'; } elseif ($val->total_events < $level * 2) { $tmp['color_evt'] = 'info'; } else { $tmp['color_evt'] = 'success'; } } if (! isset($val->details)) { $tmp['area'] = 'goalkeeper'; $tmp['color_pos'] = 'gray'; $tmp['order'] = 5; } else { if (in_array($val->details->position, $positions_map['MIDFIELD'])) { $tmp['area'] = 'midfield'; $tmp['color_pos'] = 'info'; $tmp['order'] = 2; } elseif (in_array($val->details->position, $positions_map['DEFENCE'])) { $tmp['area'] = 'defence'; $tmp['color_pos'] = 'success'; $tmp['order'] = 1; } elseif (in_array($val->details->position, $positions_map['ATTACK'])) { $tmp['area'] = 'attack'; $tmp['color_pos'] = 'warning'; $tmp['order'] = 3; } elseif (in_array($val->details->position, $positions_map['GOALKEEPER'])) { $tmp['area'] = 'goalkeeper'; $tmp['color_pos'] = 'gray'; $tmp['order'] = 4; } else { $tmp['area'] = 'defence'; $tmp['color_pos'] = 'success'; $tmp['order'] = 5; } } $result[] = $tmp; } } // dd($result); // $pos = array_column($result, 'pos'); // $area = array_column($result, 'area'); // array_multisort($area, SORT_ASC, $pos, SORT_ASC, $result); return $result; } }