php - foreach 语句强制 while/for 循环太多次

标签 php html foreach while-loop

我有一个 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/

相关文章:

javascript - Bootstrap : unable to make the div to be scrollable

javascript - jQuery 函数使整个页面加载两次

javascript - NodeList.prototype.forEach = Array.prototype.forEach;

.net - LinkedList 中的 Foreach Item 是否按顺序给出项目?

php - 停止 javascript 缓存

php - 如何在 IMagick 中使用 SVG CSS 样式?

php - laravel 5 中的日期验证

javascript - JQuery,如何找到具有相似ID的div的条件列表

php - 我可以在 PHP 5.3 中恢复旧的 __tostring() 行为吗?

php - 在此 foreach 循环中设置 PHP 变量