在for循环中重新循环数组项

时间:2013-03-11 08:28:56

标签: php arrays loops for-loop if-statement

我有一个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];
}
}

5 个答案:

答案 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;
}