[ php multidimensional array how to get values ]
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.
Answer 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.
Answer 2
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>';
Answer 3
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>';