3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array ( 0 => array ( 'datum_od' => '10.01.2020', 'datum_do' => '20.01.2020', 'abroad' ), 1 => array ( 'datum_od' => '10.02.2020', 'datum_do' => '20.02.2020', 'abroad'), 2 => array ( 'datum_od' => '10.03.2020', 'datum_do' => '20.03.2020', 'abroad'), 3 => array ( 'datum_od' => '10.04.2020', 'datum_do' => '20.04.2020', 'abroad')); $end_date = 0; if(date('d', strtotime($arr[0]['datum_od'])) != '01'){ $end_date = date('d.m.Y', strtotime($arr[0]['datum_od'] . ' -1 day')); $new[] = array('datum_od' => date('01.m.Y', strtotime($arr[0]['datum_od'])), 'datum_do' => $end_date, 'home'); } foreach($arr as $key => $item){ if(date("d.m.Y", strtotime($end_date . " +1 day")) != date('d.m.Y', strtotime($item['datum_od']))){ $end_date = date('d.m.Y', strtotime($item['datum_od'] . ' -1 day')); $new[] = array('datum_od' => date('d.m.Y', strtotime($arr[$key-1]['datum_do'] . " +1 day")), 'datum_do' => $end_date, 'home'); $new[] = $item; }else{ $new[] = $item; } // if(count($new) == 3) var_dump($end_date+1); } var_dump($new);

preferences:
54.73 ms | 402 KiB | 5 Q