Dite Gashi
Dite Gashi

Reputation: 128

Pushing into a 2 dimensional PHP array

Friends,

I am creating a drupal form (its my second one yay!) and I am pulling from the database information about Coursework. a very simple coursework_id and a coursework_name.

Now the usual format to populate a drop down menu in Drupal is as follows:

$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.'),
   );

I am trying to pass up my coursework_id and coursework_name in the #options part of the select form described above.

So far I have come up with this line of code:

foreach ($results as $result) {

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

This matches the required format of the Options but however I can only store one result:

Array
(
    [2] => Java Programming
)

How could I be able to somehow push the new results. I have tried array_push from PHP but it does seem to work for this case, it can as far as I understand only append a value.

Kind regards, -D

Upvotes: 1

Views: 146

Answers (3)

Jayant
Jayant

Reputation: 152

Basically you are redefining $courseworks with every iteration of $results array. Try this instead;

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

Upvotes: 2

Aydin Hassan
Aydin Hassan

Reputation: 1475

The following should do it for you. You define the array first and then create keys and assign the relative value:

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

Upvotes: 1

soju
soju

Reputation: 25312

You should simply try :

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

Upvotes: 3

Related Questions