我有两个数组:
$ item dates basicaly如下所示:
Array (
[0] => 2012-05-28
[1] => 2012-05-29
[2] => 2012-05-30
[3] => 2012-05-31
[4] => 2012-06-01
)
和$m['details']
看起来像这样:
Array (
[details] => Array (
[0] => Array (
[Id] => 20003
[MTimeInt] => 0
[Date] => 2012-05-28
[Name] => item
)
[1] => Array (
[Id] => 20004
[MTimeInt] => 1
[Date] => 2012-05-29
[Name] => item2
)
[2] => Array (
[Id] => 20005
[MealTimeInt] => 0
[Date] => 2012-05-29
[Name] => item3
)
)
)
//start of main bit
<?php foreach($m['details'] as $item) { ?>
<?php if($item['MTimeInt'] == 0 && $item['Date'] == $itemDates[0]) { ?>
<?php echo $item['Name']; ?> <br>
<?php } ?>
<?php if($item['MTimeInt'] == 0 && $item['Date'] == $itemDates[1]) { ?>
<?php echo $item['Name']; ?>
<?php } ?>
<?php } ?>
在迭代一次后,我遇到foreach循环的问题。在if语句完成之后,它应该继续循环(通过移动到列表中的下一个索引/项目),直到所有项目都被检查。
我之前使用了while循环但没有取得多大成功。
知道为什么会这样吗?
由于
答案 0 :(得分:1)
如果你显示的代码是正确的,那么在$ m ['details']里面还有另一个['details'],它可以解释单次迭代。
答案 1 :(得分:1)
$m['details']
只有一个元素,看得更近。
也许你想要迭代$m['details']['details']
?
答案 2 :(得分:0)
您在单个数组项上调用foreach。你应该看看如果你单独用$ m调用它会发生什么,然后用if分隔你需要的项目。当我上电脑时,我会正确地扩展我的答案
答案 3 :(得分:0)
你没有遍历正确的数组,在数组的情况下你只有一个项目,尝试使用$ m ['details'] ['details']