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);
Output for 7.1.25 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
<pre>Array ( [0] => Array ( [0] => Array ( [start] => 2019-05-08 07:00:00 [end] => 2019-05-08 09:00:00 ) [1] => Array ( [start] => 2019-05-08 09:00:00 [end] => 2019-05-08 11:00:00 ) [2] => Array ( [start] => 2019-05-08 11:00:00 [end] => 2019-05-08 13:00:00 ) [3] => Array ( [start] => 2019-05-08 13:00:00 [end] => 2019-05-08 15:00:00 ) [4] => Array ( [start] => 2019-05-08 15:00:00 [end] => 2019-05-08 17:00:00 ) ) [1] => Array ( [0] => Array ( [start] => 2019-05-09 11:25:00 [end] => 2019-05-09 12:40:00 ) ) [2] => Array ( [0] => Array ( [start] => 2019-05-09 14:15:00 [end] => 2019-05-09 14:30:00 ) ) [3] => Array ( [0] => Array ( [start] => 2019-05-10 07:00:00 [end] => 2019-05-10 09:00:00 ) [1] => Array ( [start] => 2019-05-10 09:00:00 [end] => 2019-05-10 11:00:00 ) [2] => Array ( [start] => 2019-05-10 11:00:00 [end] => 2019-05-10 13:00:00 ) [3] => Array ( [start] => 2019-05-10 13:00:00 [end] => 2019-05-10 15:00:00 ) [4] => Array ( [start] => 2019-05-10 15:00:00 [end] => 2019-05-10 17:00:00 ) ) [4] => Array ( [0] => Array ( [start] => 2019-05-09 07:00:00 [end] => 2019-05-09 07:40:00 ) ) [5] => Array ( [0] => Array ( [start] => 2019-05-11 07:00:00 [end] => 2019-05-11 09:00:00 ) [1] => Array ( [start] => 2019-05-11 09:00:00 [end] => 2019-05-11 11:00:00 ) [2] => Array ( [start] => 2019-05-11 11:00:00 [end] => 2019-05-11 13:00:00 ) [3] => Array ( [start] => 2019-05-11 13:00:00 [end] => 2019-05-11 15:00:00 ) [4] => Array ( [start] => 2019-05-11 15:00:00 [end] => 2019-05-11 17:00:00 ) ) )

preferences:
190.85 ms | 411 KiB | 164 Q