- array_merge_recursive: documentation ( source)
- var_export: documentation ( source)
- implode: documentation ( source)
- printf: documentation ( source)
<?php
$songs = [
['Michael Jackson' => 'Thriller'],
['Michael Jackson' => 'Rock With You'],
['Teddy Pendergrass' => 'Love TKO'],
['ACDC' => 'Back in Black']
];
$result = array_merge_recursive(...$songs);
var_export($result);
echo "\n---\n";
$template = <<<HTML
<h2>%s</h2>
<ul>
<li>%s</li>
</ul>
HTML;
foreach ($result as $artist => $songs) {
printf(
$template,
$artist,
implode('</li><li>', (array)$songs)
);
}