public static function horario_parser($horarios) { if (is_null($horarios)) { return false; } $datos = array(); $html = ''; foreach ($horarios as $horario) { //Obtengo los datos de cada horario de emisión y lo asigno en el array $datos $datos[] = array('dia_semana' => $horario->dia_semana, 'tipo_emision_id' => $horario->tipoEmision->id, 'tipo_emision' => $horario->tipoEmision->nombre, 'hora_inicio' => $horario->hora_inicio, 'hora_fin' => $horario->hora_fin); } //Agrupo los datos por tipo de emisión y día usort($datos, "Horarios::ob_tipo_emision_dia"); for ($i = 0; $i < count($datos); $i++) { //Separo los horarios según el tipo de emisión por arrays switch ($datos[$i]['tipo_emision_id']) { case 1: $en_vivo[] = $datos[$i]; break; case 2: $diferido[] = $datos[$i]; break; case 3: $reemision[] = $datos[$i]; break; } } //Verifico si hay emisiones "en vivo" y genero el html antes que los demás if (isset($en_vivo)) { $html .= "En vivo "; $html .= Horarios::html_emision($en_vivo); } //Verifico si hay emisiones "en diferido" y genero el html después de "en vivo" y antes que la reemisión if (isset($diferido)) { $html .= Horarios::html_emision($diferido); } //Por último verifico las reemisiones y genero el html if (isset($reemision)) { if (strlen($html)) { $html .= ', '; } $html .= "Reemisión "; $html .= Horarios::html_emision($reemision); } //Quito la coma (,) final que genera automáticamente Horarios::html_emision() y pongo el punto final //$html = substr($html, 0, -2) . '.'; $html .= '.'; //Pongo todo el texto en minúsculas y dejo la primera letra de todo el texto en mayúscula $html = ucfirst(strtolower($html)); //Retorno el html return $html; }