0

This is my php array $data.

    Array
   ( 
   [upcoming] => Array 
              ( 
              [webinars] => Array 
                          ( 
                           [0] => Array 
                                 ( 
                                 [webinarKey] => 123456 
                                 [subject] => webinar title ...
                                 [times] => Array
                                         (
                                        [0] => Array
                                            (
                                           [startTime] => 2014-04-03T00:00:00Z

Please check my code below. I want to get values of "webinarkey" and "subject" and "start date - with date formatted" and put them into my select box. I can now populate "webinarkey and "subject". Thank you all to help to to populate "webinarkey and subject" but now i want to show "start date with date format as well.

  echo '<form method="POST"><select>';
  foreach ($data["upcoming"]["webinars"] as $webinar) {
  echo '<option value="' . htmlspecialchars($webinar["webinarKey"]) . '">' . htmlspecialchars($webinar["subject"]) . htmlspecialchars($webinar["times"]["startTime"]) . '</option>';

}
    echo '</select></form>';

Please help me to show start date as well.

3 Answers 3

1
$data = array(/**/);
foreach ($data["upcoming"]["webinars"] as $webinar) {
    echo '<option value="' . htmlspecialchars($webinar["webinarKey"]) . '">' . htmlspecialchars($webinar["subject"]) . '</option>';
}

From what I gather the only array you need to loop over is $data["upcoming"]["webinars"].

Ensure your output HTML is valid and your data is escaped properly.

Sign up to request clarification or add additional context in comments.

Comments

0

Since you are trying to access a value in a multidimensional array, you cannot use -> as that is for properties of objects. Instead you need to access it like a normal array: $array[key]

Updated Code:

echo '<select>';
foreach ($webinars as $obj)
{
    foreach ($obj['webinars'] as $ob)
    {

            echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>';

    }
}
echo '</select>';

2 Comments

You have that backwards. You CAN use -> for properties of objects, however array != object.
@JonathanKuhn Thanks, mixed up my wording.
0

You're trying to use properties, it's an array not an object.

You need to use $ob['----'] instead of $ob-> notation

echo '<select>';
foreach ($webinars as $obj)
{
    foreach ($obj['webinars'] as $ob)
    {

            echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>';

    }
}
echo '</select>';

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.