PHPでカレンダーを作成しています。
コントローラーで、特定の月の日数を検出し、その範囲を配列に設定しました: daysInMonthArray
.
ビューでは、foreach
この配列は各数値を次のように出力します<td>
:
<tr>
<?php
// output the number of days in the month
foreach($this->daysInMonthArray as $days1){
foreach($days1 as $key => $object){
echo "<td>" . $object . "</td>";
}
} ?>
</tr>
<tr>
1週間は 7 日で、新しい週を開始するには新しい行を開始する必要があるため、8 番目ごとに新しい番号を開始したいと考えています。
出力の残りを 8 で割った場合に検出する if ステートメントを囲んでみました。出力が 0 の場合は改行、そうでない場合は続行します。ただし、<tr>
タグがphpステートメントの外側にあるため、これは機能しませんでした。
回答とコメントに従って、コードを次のように更新しました。
<tr>
<?php
// output the number of days in the month
foreach($this->daysInMonthArray as $days1){
foreach($days1 as $key => $object){
if($object % 8 == 0){
echo "</tr><tr><td>" . $object . "</td>";
}else {
echo "<td>" . $object . "</td>";
}
}
} ?>
</tr>
これは、月の中間の 2 週間を除いて、ほとんど機能します。中間の 2 週間は 8 日ですが、最初と最後の週は 7 日です。