3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ '2018-10-03' => 5, '2018-10-06' => 5, '2018-10-09' => 5, '2018-10-03' => 4, ]; $rotate = []; foreach ($array as $date => $value) { $rotate[$value][] = $date; } $group = []; foreach ($rotate as $value => $dates) { $group[] = [ 'start' => min($dates), 'end' => max($dates), 'value' => $value ]; } var_dump($rotate); var_dump($group);
Output for 5.6.38, 7.1.0 - 7.1.33, 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array(2) { [4]=> array(1) { [0]=> string(10) "2018-10-03" } [5]=> array(2) { [0]=> string(10) "2018-10-06" [1]=> string(10) "2018-10-09" } } array(2) { [0]=> array(3) { ["start"]=> string(10) "2018-10-03" ["end"]=> string(10) "2018-10-03" ["value"]=> int(4) } [1]=> array(3) { ["start"]=> string(10) "2018-10-06" ["end"]=> string(10) "2018-10-09" ["value"]=> int(5) } }

preferences:
144.72 ms | 409 KiB | 5 Q