3v4l.org

run code in 300+ PHP versions simultaneously
<?php $MessagesArray = [ ["date" => "2016/11/27"], ["date" => "2016/11/27"], ["date" => "2016/11/27"], ["date" => "2016/11/27"], ["date" => "2016/11/28"], ["date" => "2016/11/30"], ["date" => "2016/12/01"], ["date" => "2016/12/05"], ["date" => "2017/01/04"], ["date" => "2018/01/15"] ]; $yr = null; $mo = null; $dy = null; foreach ($MessagesArray as $row) { if ($row["date"] == "$yr/$mo/$dy") { continue; } [$y, $m, $d] = explode("/", $row["date"]); if (($m != $mo || $y != $yr) && $mo !== null) { echo "\t</div>\n"; } if ($y != $yr) { if ($yr !== null) { echo "</div>\n"; } echo "<div class='year'>$y\n"; } if ($m != $mo || $y != $yr) { echo "\t<div class='month'>Month $m\n"; } echo "\t\t<div class='day'>Day $d</div>\n"; $yr = $y; $mo = $m; $dy = $d; } if (sizeof($MessagesArray)) { echo "\t</div>\n</div>"; }

preferences:
14.9 ms | 402 KiB | 5 Q