En måte kan være å lage en liten hjelpefunksjon som gruperer navnene for deg. F.eks slik:
function groupBy($items, $keyFunc){
$groups = [];
foreach($items as $item){
$key = $keyFunc($item);
if(!isset($groups[$key]))
$groups[$key] = [];
$groups[$key][] = $item;
}
return $groups;
}
$q1 = $pdo->query("SELECT name FROM names ORDER BY name ASC");
$names = $q1->fetchAll(PDO::FETCH_ASSOC);
// Group the names by the first letter in the name
$groupedNames = groupBy($names, function($name){return mb_substr($name['name'], 0, 1);});
foreach($groupedNames as $title => $names){
echo '<h3>', $title, '</h3>';
echo '<ul>';
foreach($names as $name){
echo '<li>',$name['name'],'/li>';
}
echo '</ul>';
}