Dan*_*Dan 4 php arrays sorting grouping
我有一个包含名称数组和其他细节的数组,按字母顺序排列.每个数组都包含与名称关联的第一个字母.
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
)
)
Run Code Online (Sandbox Code Playgroud)
我想按照第一个首字母显示它们,例如:
A - Alanis Morissette Alesha Dixon Alexandra Burke B - Britney Spears Bryan Adams etc...
这是可能吗?
out*_*tis 12
您可以轻松地对它们进行分组,即使它们没有排序:
$groups=array();
foreach ($names as $name) {
$groups[$name[0]][] = $name[1];
}
Run Code Online (Sandbox Code Playgroud)
您甚至不需要存储第一个首字母来对它们进行分组:
$names = array(
'Alanis Morissette',
'Alesha Dixon',
'Alexandra Burke',
'Britney Spears',
'Bryan Adams',
...
);
$groups=array();
foreach ($names as $name) {
$groups[$name[0]][] = $name;
}
Run Code Online (Sandbox Code Playgroud)
由于您的数组已经排序,您可以循环浏览并跟踪显示的最后一个字母.当它改变时,你知道你正在接下来的一封信.
$lastChar = '';
foreach($singers as $s) {
if ($s[0] != $lastChar) echo "\n".$s[0]."\n - \n";
echo $s[1]."\n";
$lastChar = $s[0];
}
Run Code Online (Sandbox Code Playgroud)