2010-01-03 86 views
0

我在Drupal中動態生成一個選擇列表,我想創建一個關聯數組來填充節點ID作爲值,並將節點的標題作爲選項。使用while循環爲選擇列表創建關聯數組?

默認情況下,它使每個選項的值成爲選擇列表的索引。這是不好的,因爲選擇列表是動態的,這意味着值不會以相同的順序。 我使用drupal_map_assoc使該值與選項相同,但我有基於存儲在此字段中的值的查詢,因此如果有人更新存儲的值,則查詢將不匹配。

<option value="Addison Reserve Country Club Inc.">Addison Reserve Country Club Inc.</option> 

我想用節點ID替換值也與查詢拉。

$sql = 'SELECT DISTINCT title, nid FROM {node} WHERE type = \'accounts\' '; 
     $result = db_query($sql); 
    while ($row = db_fetch_array($result)) { 
     $return[] = $row['title']; 
     //Trying to do something like 'Addison Reserve Country Club' => '2033' - where 2033 is the nid 

    } 
     $return = drupal_map_assoc($return); 

回答

1

我覺得你只是想這樣做內環路:

$return[$row['nid']] = $row['title']; 

基於您的評論,你也想在循環之後做一個array_flip(),但我認爲您的評論可能只是讓它倒退。

+0

邁克,你是男人。我有類似的語法,但拋出了一些錯誤。我可能已經錯過了$ row ['nid']上的封裝支架 - 不過它可以工作。 – tpow 2010-01-03 22:04:22