3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = Array ( '0' => Array ( 'start' => '2019-05-08 07:00:00', 'end' => '2019-05-08 17:00:00' ), '1' => Array ( 'start' => '2019-05-09 11:25:00', 'end' => '2019-05-09 12:40:00' ), '2' => Array ( 'start' => '2019-05-09 14:15:00', 'end' => '2019-05-09 14:30:00' ), '3' => Array ( 'start' => '2019-05-10 07:00:00', 'end' => '2019-05-10 17:00:00' ), '4' => Array ( 'start' => '2019-05-09 07:00:00', 'end' => '2019-05-09 07:40:00' ), '5' => Array ( 'start' => '2019-05-11 07:00:00', 'end' => '2019-05-11 17:00:00' ) ); $res=[]; foreach($arr as $k => $v){ $diff = strtotime($v['end'])-strtotime($v['start']); if($diff >= 7200){ for($i=strtotime($v['start']);$i<strtotime($v['end']);){ $start = date('Y-m-d H:i:s',$i); $i = $i+7200; $end = date('Y-m-d H:i:s',$i); $res[$k][] = [ 'start' => $start, 'end' => $end ]; } }else{ $res[$k][] = [ 'start' => date('Y-m-d H:i:s',strtotime($v['start'])), 'end' => date('Y-m-d H:i:s',strtotime($v['end'])) ]; } } echo '<pre>'; print_r($res);

preferences:
54.93 ms | 402 KiB | 5 Q