内部にwhile/for
ループがあるループがあります。foreach
コードを読むと、ロジックの観点から私が何を達成しようとしているのかが自明になります。
素人の言葉で言えば、私はPHPでカレンダーを作成しようとしています。foreach
ステートメントは、カレンダーインターフェイス用に、4週間、7日間、5 x 7=35の35個のセルを作成します。
ループは4月(30)のwhile
日数を要し、各セルで1〜30の範囲をそれぞれ試行しています。
ただし、以下のコードを実装すると、各数値が30回繰り返されます。
$i = 1;
while ($i <= 30){
foreach ($this->cells as $cells){
foreach ($cells as $key => $object){
echo "<td>" . $i . "</td>";
if($object % 7 == 0){
echo "</tr><tr>";
}
}
}
$i++;
}
私はこれを試しました:
$i = 1;
while ($i <= 30){
foreach ($this->cells as $cells){
foreach ($cells as $key => $object){
echo "<td>" . $i . "</td>"; $i++;
if($object % 7 == 0){
echo "</tr><tr>";
}
}
}
}
1〜30を何度も出力する代わりに、1〜30だけが必要な場合は、1〜35を出力します。
forループを試した結果、各数値の多くが出力されました。ループコードの場合:
for ($i = 1; $i <= 30; $i++){
foreach ($this->cells as $cells){
foreach ($cells as $key => $object){
echo "<td>" . $i . "</td>";
if($object % 7 == 0){
echo "</tr><tr>";
}
}
}
}
$this->cells
配列内の範囲は1〜35です