質問

それは、これを行うことは可能ですか? (ここに私のコードです)。

for ($i = 0 ; $i <= 10 ; $i++){
  for ($j = 10 ; $j >= 0 ; $j--){
     echo "Var " . $i . " is " . $k . "<br>";
  }
}

私はこのような何かをしたい:

VAR 0が10である

VAR 1が9である

VAR 2は8です...

しかし、私のコードが間違っている、それは巨大なリストを提供します。 PHPの教祖、私を助けて!!

役に立ちましたか?

解決

これを試してください:

for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
    echo "Var " . $i . " is " . $k . "<br>";
}

二つの変数の$i$kは、それぞれ010で初期化されています。各各ループ$iの端に1つ($i++)デクリメントオン($k)と$k--インクリメントされます。だから、$iは値0、1、...、10を持っていると値を$kます10、9、...、0ます。

他のヒント

また、第二の可変のための条件を追加することができます。

for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
    echo "Var " . $i . " is " . $k . "<br>";
}

あなたは、あなたが121回の合計(11×11)をループしているとして達成したい何のための2つのforループを使用するべきではありません。何が本当にしたいことはJを追跡ループの外で宣言カウンターを持って、その後、ループ内でJをデクリメントするだけです。

編集:私のために含めることをキャッチしてくれてありがとうガンボを

あなたのコードのように見えるように、あなたは反対の方向を実行している2つの値を持っている場合は、あなたでし単にsubstractます:

echo "Var " . $i . " is " . 10 - $i . "<br>";

しかし、私はそれはあなたが望む本当にないですね?また、提案コンマ演算子するに注意してください。それはいいことですが、それは Cのような他の言語でいたずらな副作用を引き起こす可能性がありますそして、PHPなどのC ++ には違った、それを実装しています。

他の(正しい)回答に展開するためには、何をやっていたが、の入れ子にのループと呼ばれています。これは、外側のループ(最初の1)の各反復のために、あなたは全体の内側のループを完了したことを意味します。これは、代わりに11の出力の、あなたは

11 + 11 + 11 + ... = 11 * 11出力を得ることを意味します
array_map(function($i) {
    echo "Var {$i} is ".(10-$i)."<br/>".PHP_EOL; 
}, range(1,10));

私は毎回ループスルー2つの変数を使用して、開始時間と終了時間を考えると、データベース内に開始時間と終了時間と店舗を取得しようとしましたI&J

   $start = "09:00";
   $end = "18:00";
   $strEnTim = strtotime("10.00");

   $slotStart = strtotime($start);
   $slotEnd = strtotime($end);
   $slotNow = $slotStart;

   for( $i=$slotStart, $j=$strEnTim; $i, $j<=$slotEnd; $i+=3600,  $j+=3600) 
   {
        if(( $i < $slotNow) && ( $j < $strEnTim)) continue;
        Slot::create([
            'start_time' => date("H:i",$i),
            'end_time' => date("H:i", $j)
        ]);
   }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top