推入二维PHP数组

时间:2013-05-05 17:11:24

标签: php arrays multidimensional-array drupal-7 drupal-forms

我正在创建一个drupal表单(这是我的第二个yay!),我从数据库中提取有关Coursework的信息。一个非常简单的 coursework_id 和一个 coursework_name

现在填充Drupal下拉菜单的常用格式如下:

$form['selected'] = array(
       '#type' => 'select',
       '#title' => t('Selected'),
       '#options' => array(
          0 => t('No'),
         1 => t('Yes'),
       ),
       '#default_value' => $category['selected'],
       '#description' => t('Set this to <em>Yes</em> if you would like this category to be selected by default.'),
   );

我正在尝试在上述选择表单的#options部分中传递我的coursework_id和coursework_name。

到目前为止,我已经提出了这行代码:

foreach ($results as $result) {

            $courseworks = (array($result->coursework_id => $result->coursework_name));
}

这符合选项所需的格式,但是我只能存储一个结果:

Array
(
    [2] => Java Programming
)

我怎么能以某种方式推送新结果。我已经尝试过PHP中的array_push,但它确实适用于这种情况,据我所知它只能追加一个值。

亲切的问候, -D

3 个答案:

答案 0 :(得分:3)

你应该试试:

foreach ($results as $result) {
    $courseworks[$result->coursework_id] = $result->coursework_name;
}

答案 1 :(得分:2)

基本上,您要在$courseworks数组的每次迭代中重新定义$results。 试试这个;

$courseworks = array();
foreach ($results as $result) 
{
    $courseworks[] = (array($result->coursework_id => $result->coursework_name));
}

答案 2 :(得分:1)

以下内容应该为您完成。首先定义数组,然后创建键并分配相对值:

$courseworks = array();
foreach ($results as $result) {
    $courseworks[$result->coursework_id] = $result->coursework_name;
}