strtotime関数を駆使して、開始時間(display_start_time、16:00の感じ)から終了時間(display_end_time)まで30分周期で配列にいれていくには、以下のようにすれば可能です。表形式のスケジュールを自作する場合、使えると思います。strtotimeは何日前の日にちとかも返すことができて、重宝します。
timestamp = strtotime($row['display_start_time']); while ($timestamp < strtotime($row['display_end_time'])){ $time = date('H:i',$timestamp); $data[date("m/d", strtotime(0-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(1-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(2-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(3-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(4-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(5-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $data[date("m/d", strtotime(6-intval($yobi)." day"))][$time]['program_id']= $row['program_name']; $timestamp = strtotime("+30 minutes", $timestamp); }