我在Drupal中动态生成一个选择列表,我想创建一个关联数组,将节点ID填充为值,并将节点的标题填充为选项。
默认情况下,它使每个选项的值成为选择列表的索引。这并不好,因为选择列表是动态的,这意味着值的顺序不同。 我使用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);
答案 0 :(得分:1)
我想你只想在循环中这样做:
$return[$row['nid']] = $row['title'];
根据您的评论,您还希望在循环之后立即执行array_flip()
,但我认为您的评论可能只是向后。