2014-05-11 32 views
-1

我有一個數據庫,其中存儲了索引值。數據與其他指定數據相對應,包含在平面文件中的其他位置。如何重新排序PHP中的下拉列表

我正在從數據庫中讀取數據,並將索引值與相應的命名數據進行匹配,但沒有任何順序。我沒有辦法將數據從數據庫中選出來,以便在下拉菜單中按順序列出指定的數據。

在我向用戶顯示它之前,有一種方法可以讓我在匹配完所有內容後排列列表?這裏是我有這個匹配的代碼。

while ($y <= $totalItemsAvail) #Loops based on the number of items needed. 
{ 
    $itemNumberRet = getItemNames($y); 
    $itemOptions.="<option value=\"$y\">".$itemNumberRet.'</option>'; 
    $y++; 
} 

我想在我實際顯示用戶的選項之前按字母順序排列此處的列表。

的數據看起來是這樣的,從數據庫來的項目編號,並從平面文件的名稱:

ID   Name 
1   Frank 
2   Andy 
3   Tom 
4   Charles 
5   Betty 
6   Ashley 
7   Ben 

我想名單按字母順序顯示,而且還保留存儲在$y變量中的原始索引值。

回答

2

將所有的選項數組第一:

$itemOptions = array(); 
while ($y <= $totalItemsAvail) #Loops based on the number of items needed. 
{ 
    $itemOptions[] = getItemNames($y); 
    $y++; 
} 

使用asort()到同時保留鍵按字母順序排序。然後,通過陣列使用foreach循環並顯示<option> S:

asort($itemOptions); 
foreach ($itemOptions as $value => $option) { 
    echo sprintf('<option value="%d">%s</option>', $value, $option); 
} 
+0

除了事實,我需要'ASORT()',你點上。感謝您的幫助! – Robert82

+0

@ Robert82:哦,對。發了一個錯字,對不起。現在更新了帖子。感謝您的提醒! –