-1

我有一个用于检查条件的 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];
}
}
4

5 回答 5

2

通过循环重新运行项目

您可以使用prev()which 将内部数据指针设置后退 1 步。

prev($test_array); //will re-run the current element in the next iteration
于 2013-03-11T08:33:08.860 回答
1

您可以使用

While(true){
//your code
}

在 for 循环之前,但请确保您打破循环,否则它将成为无限循环并挂起您的服务器。

于 2013-03-11T08:32:53.783 回答
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];
  }
}
于 2013-03-11T08:39:23.960 回答
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';
?>
于 2013-03-11T08:34:40.943 回答
0

使用多级中断,就像这个 -

$flag=0;
while(true) {
    while($cond) {
        if($cond2) {
            $flag=1;
            break;
        }
    }
    if($flag) break;
}
于 2013-03-11T08:51:08.640 回答