所以我尝试使用PHP生成一些内容,第n个循环的标准需要打开或关闭div元素。所以我的目标是在页面和第9个元素上显示8个元素,我想关闭第8个元素的div,如果还有更多的图像则打开第9个元素的新元素。这是我的代码。
$images; // object
$i = 1;
echo '<div class="outer-container">';
while ( $images->have_images() ) {
if ( $i === 1 ) {
echo '<div class="inner-container">';
}
echo 'content here';
if ( $i === 8 || $images->total === $images->current + 1 ) {
echo '</div><!--.inner-container-->';
}
$i++;
}
echo '</div><!--.outer-container-->';
最终结果应如下所示:
<div class="outer-container">
<div class="inner-container">
content here
content here
content here
content here
content here
content here
content here
content here
</div><!--.inner-container-->
<div class="inner-container">
content here
content here
content here
</div><!--.inner-container-->
</div><!--.outer-container-->
我四处搜索并得出结论,我必须使用模数,但我不确定如何将其合并到我的代码中。
感谢您的光临。
答案 0 :(得分:1)
模数确实是你想要的:
if ( $i % 8 === 0 ) {
echo '</div><!--.container-->';
}
答案 1 :(得分:1)
if ( $i % 8 == 0) {
echo '</div><!--.container--><div class="container">';
}
Mod运算符返回余数。您可以简单地说明$i % 8
或$i % 8 == 0
或$i % 8 === 0 as john stated
但是你需要在条件中打开下一个div,具体取决于你如何构造它。一个例子:
<div class="outer-container">
<div class="inner-container">
<?php
$images; // object
$i = 1;
while ( $images->have_images() ) {
echo 'content here';
//print_r($i % 8);
if ( $i % 8 == 0 && $images->total > 8) {
echo '</div><!--.inner-container--><div class="inner-container">';
}
$i++;
}
?>
</div>
</div>
添加条件,以防你的图像总数达到8,它不会创建一个流氓空div。
我想了解你的评论。你是说你有一个外部容器,然后是一个内部容器,并且在这个内部容器中你想要在问题中定义的循环,其中每组8都包含在container
div中?
我在循环中添加了一个打印r,您可以取消注释以验证$ i正在执行您想要的操作。通过这段代码以及$ i从1开始的事实,你不应该过早地经历结束div条件。
答案 2 :(得分:1)
你忘了打开一个新的div
修改以下代码:
if ( $i === 8 || $images->total === $images->current + 1 ) {
echo '</div><!--.container-->';
echo '<div class="container">'; //ADD THIS LINE!!!
}
在您离开while
后添加结束</div>
代码