リストを完全にアルファベット順にしたいですか?それとも、最初の手紙でグループ分けされていますか?あなたの言葉が始まっていない手紙が見出しとして表示されない場合は気になりますか?たとえば、「x」で始まる単語がない場合は、「X」カテゴリに何も表示されていないか、「W」から「Y」にスキップする必要がありますか?
正確な実装は、これらの質問に対する回答によって異なる場合があります。ここでは、アルファベット順にリストを表示し、その中に単語のないカテゴリをスキップするソリューションがあります。 (あなたがしたいマークアップの種類はわかりません;これはかなり裸の骨です)。
$result = mysql_query("SELECT col FROM table ORDER BY col");
$lastFoundLetter = '';
while($row = mysql_fetch_array($result)) {
//get the first letter of the current record
$firstLetter = substr($row['col'], 0, 1);
if ($firstLetter != $lastFoundLetter) {
//you've started a new letter category
if ($lastFoundLetter != '') {
//if there's a real value in $lastFoundLetter, we need to close the previous div
echo "</div>";
}
echo "<div id='" . strtoupper($firstLetter) . "'>";
echo strtoupper($firstLetter) . "<br/>";
$lastFoundLetter = $firstLetter;
}
echo $row['col']. "<br/>";
}
//close the last div
if ($lastFoundLetter != '') {
echo "</div>";
}
ありがとうございました!あなたの提案は私を助けました。 forを使って配列を調べ、アイテムの最初の文字が前のアイテムの最初の文字と異なるかどうかを確認します。 – Cosmi