- array_map: documentation ( source)
- implode: documentation ( source)
- array_keys: documentation ( source)
<?php
$dates = ['20240228', '20240229', '20240301'];
$groups = [];
foreach ($dates as $date) {
$date = new DateTime($date);
$groups[$date->format('F')][] = $date->format('j');
}
echo implode(
' & ',
array_map(
fn($j, $F) => implode(', ', $j) . " $F",
$groups,
array_keys($groups)
)
);