我有一个while/for
循环,foreach
里面有一个循环。阅读代码将使我在逻辑方面尝试实现的目标不言自明。
用外行的话来说,我正在尝试用 PHP 创建一个日历。该foreach
语句创建 35 个单元格,用于日历界面,4 周,7 天,5 x 7 = 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 的范围