2012-12-03 175 views
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> 

+0

你的代碼有孩子的所有字母表你需要這個?汽車是C的孩子! –

回答

2

首先,按鍵排列字母順序排列:

ksort($myArray); 

或者,如果你想要做一個不區分大小寫的排序:

$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); 
} 

uksort($myArray, "strnatcasecmp"); 

然後創建一個臨時數組組開始用相同的字母爲子陣列的所有字

最後,呈現HTML:

foreach($arrTemp as $strLetter => $arrWords) { 
    print('<ul>' . strtoupper($strLetter)); 
    foreach($arrWords as $strWord) { 
     print(' <li>' . $strWord . '</li>'); 
    } 
    print('</ul>'); 
} 
2

您可以使用以下方法來通過密鑰字母順序排列:

ksort($myArray);