private static function filterByCountry($streamers, $country_id) { $streamer_ids = array(); $streamers = array_map(function ($streamer) use(&$streamer_ids) { $streamer['countries'] = StreamServer::getCountries($streamer['stream_zone']); $streamer_ids[] = $streamer['id']; return $streamer; }, $streamers); $filtered_streamers = array_filter($streamers, function ($streamer) use($country_id) { return $streamer['stream_zone'] == 0 || array_search($country_id, $streamer['countries']) !== false; }); if (empty($filtered_streamers)) { $filtered_streamers = Mysql::getInstance()->select('streaming_servers.*, stream_zones.default_zone')->from('streaming_servers')->join('stream_zones', 'stream_zone', 'stream_zones.id', 'LEFT')->where(array('default_zone' => 1))->in('streaming_servers.id', $streamer_ids)->get()->all(); } return $filtered_streamers; }