【发布时间】:2015-03-18 02:45:13
【问题描述】:
我有一个如下所示的数组。我想获取 startTime 和 endTime 的值。 startTime 和 endTime 的值应该出现在下拉列表中。表示第一个数组块的 startTime 和 endTime 的值应该出现在选择框的一个选项中,第二个数组块应该出现在第二个选项中。我有大约 100 多个数组块。
Array
(
[upcoming] => Array
(
[webinars] => Array
(
[0] => Array
(
[times] => Array
(
[0] => Array
(
[startTime] => 2015-03-23T11:00:00Z
[endTime] => 2015-03-23T12:00:00Z
)
)
)
[1] => Array
(
[times] => Array
(
[0] => Array
(
[startTime] => 2015-03-26T11:00:00Z
[endTime] => 2015-03-26T12:00:00Z
)
)
)
)
[status] => 1
)
)
所以为了从数组中获取值,我编写了这样的代码
foreach($webinars as $key=>$val) {
foreach($val as $test) {
foreach($test as $ksh) {
foreach($ksh['times'] as $k=>$v) {
echo $v['startTime'];
echo $v['endTime'];
}
}
}
}
但我不认为使用 4 foreach 获取 startTime 和 endTime 是一种更聪明的方法。我想知道有没有更聪明的方法来获取这些值?任何帮助和建议都将是非常可观的。谢谢
【问题讨论】:
-
times数组是否总是只包含一个数组元素,还是可以更多?upcoming键也一样,在那个级别上也可以有不同的键吗? -
@CBroe 是的,时间和即将到来的将始终只有一个数组元素。
-
那么您不需要遍历这些级别,而是可以直接通过它们的键访问元素。
-
@CBore 你能分享一些代码吗?
-
你的php版本是多少?
标签: php arrays multidimensional-array foreach