首先,按键按字母顺序对数组进行排序:
ksort($myArray);
或者,如果您想进行不区分大小写的排序:
uksort($myArray, "strnatcasecmp");
然后创建一个临时数组,将所有以相同字母开头的单词分组到子数组中:
$arrTemp = array();
foreach($myArray as $strKey => $strValue) {
$strLetter = strtolower( substr($strKey, 0, 1) );
if(array_key_exists($strLetter, $arrTemp) === FALSE) {
$arrTemp[$strLetter] = array();
}
array_push( $arrTemp[$strLetter], $strKey );
}
最后,渲染 HTML:
foreach($arrTemp as $strLetter => $arrWords) {
print('<ul>' . strtoupper($strLetter));
foreach($arrWords as $strWord) {
print(' <li>' . $strWord . '</li>');
}
print('</ul>');
}