これを行うことは可能ですか? (これが私のコードです)
for ($i = 0 ; $i <= 10 ; $i++){
for ($j = 10 ; $j >= 0 ; $j--){
echo "Var " . $i . " is " . $k . "<br>";
}
}
私はこのようなものが欲しい:
var0は10です
var1は9です
var2は8です.。
しかし、私のコードは間違っています、それは巨大なリストを与えます。 PHPの第一人者、助けてください!!
これを試して:
for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
2つの変数$i
と$k
は、それぞれ0
と10
で初期化されます。各ループの終わりに、$i
は1ずつ増加し($i++
)、$k
は1ずつ減少します($k--
)。したがって、$i
の値は0、1、…、10になり、$k
の値は10、9、…、0になります。
2番目の変数の条件を追加することもできます
for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
合計121回(11x11)ループしているので、達成したい目的で2つのforループを使用しないでください。本当に必要なのは、jを追跡するループの外側でカウンターを宣言し、ループの内側でjをデクリメントすることです。
編集:私のためにインクルージョンをキャッチしてくれたGumboに感謝します。
他の(正しい)答えを拡張するために、あなたがしていたことはnesting loopsと呼ばれます。これは、外側のループ(最初のループ)の反復ごとに、内側のループ全体を完了していたことを意味します。これは、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)
]);
}