我有一个for循环检查条件,我想知道如果在我对变量进行一些更改后它不符合条件,我是否可以通过循环重新运行一个项目。 是否可以在我的else语句中添加一些内容,以便在新条件下重新运行相同的$ item?
$array_1 = array();
$arraynumber = 0;
foreach($test_array as $item) {
if($item[2] == $test_array[$y][2]) {
$array_1[$arraynumber][] = $item;
$z++;
} else {
$arraynumber++;
$y = $y+$z;
$z=0;
echo $item[2];
}
}
解决方案原来是这样,只为感兴趣的人:
foreach($test_array as $item) {
if($item[2] == $test_array[$y][2]) {
$array_1[$arraynumber][] = $item;
$z++;
}elseif($item[2] == $test_array[$y+$z][2]){
$array_1[$arraynumber+1][] = $item;
$y = $y+$z;
$z=1;
$arraynumber++;
}else{
$array_1[$arraynumber+2][] = $item;
$z++;
$y = $y+$z;
$z=0;
$arraynumber++;
echo $item[2];
}
}
答案 0 :(得分:2)
通过循环
重新运行 项
您可以使用prev()
将内部数据指针设置为后退一步。
prev($test_array); //will re-run the current element in the next iteration
答案 1 :(得分:1)
您可以使用
While(true){
//your code
}
在for循环之前,但要确保你打破循环,否则它将变成无限循环并挂起你的服务器。
答案 2 :(得分:1)
$array_1 = array();
$arraynumber = 0;
foreach($test_array as $item) {
if($item[2] == $test_array[$y][2]) {
$array_1[$arraynumber][] = $item;
$z++;
}elseif("Your Second statment"){
echo 'Your second Task';
}else{
$arraynumber++;
$y = $y+$z;
$z=0;
echo $item[2];
}
}
答案 3 :(得分:0)
您也可以使用 GOTO 。
示例强>
<?php
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
?>
答案 4 :(得分:0)
使用多级休息,就像这样 -
$flag=0;
while(true) {
while($cond) {
if($cond2) {
$flag=1;
break;
}
}
if($flag) break;
}