-1

条件をチェックする for ループがあり、変数にいくつかの変更を加えた後に条件を満たさない場合、ループを介して項目を再実行できるかどうかを知りたいです。新しい条件で同じ $item を再実行できるようにする何かを else ステートメントに追加することは可能ですか?

$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()内部データ ポインターを 1 ステップ後ろに設定する which を使用できます。

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

このようにマルチレベルブレークを使用します-

$flag=0;
while(true) {
    while($cond) {
        if($cond2) {
            $flag=1;
            break;
        }
    }
    if($flag) break;
}
于 2013-03-11T08:51:08.640 に答える
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 に答える