有没有办法在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
答案 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>
}
}