foreach正在播放

时间:2012-05-31 14:57:29

标签: php arrays codeigniter

我有两个数组:

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

知道为什么会这样吗?

由于

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

$m['details']只有一个元素,看得更近。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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