我有一个 while/for
循环,里面有一个 foreach
循环。阅读代码将使我在逻辑方面想要实现的目标变得不言自明。
通俗地说,我正在尝试用 PHP 创建一个日历。 foreach
语句创建了 35 个单元格,用于日历界面,4 周,7 天,5 x 7 = 35。
while
循环已获取 4 月份的天数 (30),并尝试每个单元格中的范围 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循环代码:
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
最佳答案
$i=0;
foreach ($this->cells as $cells){
foreach ($cells as $key => $object){
if($i<=30)
echo "<td>" . $i . "</td>";
$i++;
if($object % 7 == 0){
echo "</tr><tr>";
}
}
}
试试这个代码
关于php - foreach 语句强制 while/for 循环太多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383678/