使用foreach(PHP)返回数组

时间:2014-05-13 02:32:00

标签: php arrays foreach

有没有办法在PHP中使用foreach我可以测试数组的一部分是否等于一个变量,做一些事情,但是接下来循环的数组的前一个位置是否继续foreach?

我的代码的简单版本:

<?php
$t=1;
foreach($getAllDetails as $allrecords)  {                   
    if ($allrecords[0] != $t){
    echo '<b>'.$t.'.---------------------------------</b><br>';
    }else{                      
?>
    <b>
    <?php 
    echo $allrecords[0].'. '. $allrecords[10].', '.$allrecords[2].', '.$allrecords[11].', '.$allrecords[12].', '.round($allrecords[6],1).'%, '.$allrecords[8].'oz, $'.round($allrecords[5]); 
    ?>
    </b>
    }
}

所以我的数组会产生类似这样的东西

$ allrecords [0] = 2&amp; T = 2
$ allrecords [0] = 3&amp; T = 3
$ allrecords [0] = 4&amp; T = 4
$ allrecords [0] = 5&amp; T = 5
$ allrecords [0] = 6&amp; T = 6
$ allrecords [0] = 7&amp; T = 7
$ allrecords [0] = 8&amp; T = 8
$ allrecords [0] = 9&amp; T = 9
$ allrecords [0] = 11&amp; T = 10&lt; ----如果($ allrecords [0]!= $ t) - 做一些事情 $ allrecords [0] = 12&amp; T = 11&lt; ---- 这里是我需要foreach退后并开始在$ allrecords [0]的值导致if语句触发的地方,所以$ allrecords [0]应该等于上一个或在此示例中11

1 个答案:

答案 0 :(得分:2)

请尝试使用for循环:

$t = 1;

for($i = 0, $numRecords = sizeof($getAllDetails), $i < $numRecords; ++$i) {
    if ($getAllDetails[$i][0] != $t) {
        echo '<b>'.$t.'.---------------------------------</b><br>';

        // you can change the value of $i here to step back (i.e. --$i)
    } else {                      
?>
    <b>
    <?php 
        echo $getAllDetails[$i][0].'. '. $getAllDetails[$i][10].', '.$getAllDetails[$i][2].', '.$getAllDetails[$i][11].', '.$getAllDetails[$i][12].', '.round($getAllDetails[$i][6],1).'%, '.$getAllDetails[$i][8].'oz, $'.round($getAllDetails[$i][5]); 
    ?>
    </b>
    }
}