0

配列の結果をアルファベット順にソートされたHTMLリストに出力することは可能ですか?これが私の言いたいことです。私は次の形式の配列を持っています:

$myArray = array(
    "apple" => "Fruit that grows ...", 
    "car" => "Vehicle on four...", 
    "ant" => "Insect ..."
    ...
);

必要な出力:

<ul>A
   <li>ant</li>
   <li>apple</li>
</ul>
<ul>C
   <li>car</li>
</ul>

4

2 に答える 2

2

まず、配列をキーでアルファベット順に並べ替えます。

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>');
}
于 2012-12-03T23:09:32.627 に答える
2

以下を使用して、配列をキーのアルファベット順に並べ替えることができます。

ksort($myArray);
于 2012-12-03T22:47:12.097 に答える