0

我有两个数组:

$item 日期基本上是这样的:

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循环,但没有取得多大成功。

知道为什么会这样吗?

谢谢

4

4 回答 4

1

如果您显示的代码是正确的,那么在 $m['details'] 内还有另一个 ['details'],它可以解释单次迭代。

于 2012-05-31T15:01:24.737 回答
1

只有$m['details']一个元素,仔细看。

也许想要你迭代$m['details']['details']

于 2012-05-31T15:03:02.010 回答
0

您正在对单个数组项调用 foreach 。如果您单独在 $m 上调用它并用 if 分隔您需要的项目,您应该会看到会发生什么。当我使用电脑时,我会正确扩展我的答案

于 2012-05-31T15:05:37.773 回答
0

您没有遍历正确的数组,在您的情况下,数组中只有一项,请尝试使用 $m['details']['details']

于 2012-05-31T15:06:46.820 回答