这是我的php数组$data。
Array
(
[upcoming] => Array
(
[webinars] => Array
(
[0] => Array
(
[webinarKey] => 123456
[subject] => webinar title ...
[times] => Array
(
[0] => Array
(
[startTime] => 2014-04-03T00:00:00Z
请在下面检查我的代码。我想获取"网络研讨会密钥"和"主题"和"开始日期 - 日期格式化"的值,并将它们放入我的选择框中。我现在可以填充"网络研讨会密钥和"主题"。谢谢大家帮助填充"网络研讨会密钥和主题",但现在我想显示"日期格式的开始日期"。
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>';
请帮我显示开始日期。
$data = array(/**/);
foreach ($data["upcoming"]["webinars"] as $webinar) {
echo '<option value="' . htmlspecialchars($webinar["webinarKey"]) . '">' . htmlspecialchars($webinar["subject"]) . '</option>';
}
从我收集的内容来看,您需要循环的唯一数组是$data["upcoming"]["webinars"]
.
确保输出 HTML 有效且数据已正确转义。
由于您尝试访问多维数组中的值,因此不能使用 ->
,因为它用于对象的属性。相反,您需要像普通数组一样访问它:$array[key]
更新的代码:
echo '<select>';
foreach ($webinars as $obj)
{
foreach ($obj['webinars'] as $ob)
{
echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>';
}
}
echo '</select>';
您正在尝试使用属性,它是一个数组而不是一个对象。
您需要使用 $ob['----'] 而不是$ob>表示法
echo '<select>';
foreach ($webinars as $obj)
{
foreach ($obj['webinars'] as $ob)
{
echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>';
}
}
echo '</select>';