PHP разбивает массивы на группы на основе значения одного поля

У меня есть массив, содержащий массивы имен и других деталей, в алфавитном порядке. Каждый массив включает первую букву, связанную с именем.

Array ( [0] => Array ( [0] => a [1] => Alanis Morissette ) [1] => Array ( [0] => a [1] => Alesha Dixon ) [2] => Array ( [0] => a [1] => Alexandra Burke ) [3] => Array ( [0] => b [1] => Britney Spears ) [4] => Array ( [0] => b [1] => Bryan Adams ) ) 

Я бы хотел отобразить их сгруппированными по первому первому, например:

 
 -
 Аланис Мориссетт
 Алеша Диксон
 Александра Берк

 В
 -
 Бритни Спирс
 Брайан Адамс

 и т.д... 

Это вообще возможно?

Вы можете легко их сгруппировать, даже если они не отсортированы:

 $groups=array(); foreach ($names as $name) { $groups[$name[0]][] = $name[1]; } 

Вам даже не нужно сохранять первый файл, чтобы сгруппировать их:

 $names = array( 'Alanis Morissette', 'Alesha Dixon', 'Alexandra Burke', 'Britney Spears', 'Bryan Adams', ... ); $groups=array(); foreach ($names as $name) { $groups[$name[0]][] = $name; } 

Поскольку ваш массив уже отсортирован, вы можете просто прокрутить и проследить показанное последнее письмо. Когда это изменится, вы знаете, что находитесь на следующем письме.

 $lastChar = ''; foreach($singers as $s) { if ($s[0] != $lastChar) echo "\n".$s[0]."\n - \n"; echo $s[1]."\n"; $lastChar = $s[0]; }