Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 第n次迭代_Php_Loops_Iteration_Modulus - Fatal编程技术网

Php 第n次迭代

Php 第n次迭代,php,loops,iteration,modulus,Php,Loops,Iteration,Modulus,因此,我尝试使用PHP生成一些内容,这些内容的条件是,第n个循环需要打开或关闭一个div元素。因此,我的目标是在页面上显示8个元素,在第9个元素上,我想关闭第8个元素的div,并在第9个元素上打开一个新的div,如果还有图像的话。这是我的密码 $images; // object $i = 1; echo '<div class="outer-container">'; while ( $images->have_images() ) { if ( $i ===

因此,我尝试使用PHP生成一些内容,这些内容的条件是,第n个循环需要打开或关闭一个div元素。因此,我的目标是在页面上显示8个元素,在第9个元素上,我想关闭第8个元素的div,并在第9个元素上打开一个新的div,如果还有图像的话。这是我的密码

$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-->';
$images;//对象
$i=1;
回声';
而($images->have_images()){
如果($i==1){
回声';
}
呼应“这里的内容”;
如果($i==8 | |$images->total===images->current+1){
回声';
}
$i++;
}
回声';
最终结果应该如下所示:

<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-->

满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
满足于此
我四处搜索,得出一个结论,我可能必须使用模数,但我不确定如何将其纳入我的代码中


感谢您的关注。

模数确实是您想要的:

if ( $i % 8 === 0 ) {
    echo '</div><!--.container-->';
}
if($i%8==0){
回声';
}
增加了条件,以防你的图像总数恰好是8,它不会创建一个流氓空div

我想理解你的评论。你是说你有一个外部容器,然后是一个内部容器,在这个内部容器中,你想要你在问题中定义的循环,每组8个都包含在
容器
div中


我在循环中添加了一个print r,您可以取消注释以验证$I是否正在执行您希望它执行的操作。根据这段代码和$i从1开始的事实,您不应该过早地经历结束div的条件。

您忘记打开一个新div

修改以下代码:

if ( $i === 8 || $images->total === $images->current + 1 ) {
    echo '</div><!--.container-->';
    echo '<div class="container">'; //ADD THIS LINE!!!
}
if($i==8 | |$images->total==images->current+1){
回声';
echo“”;//添加此行!!!
}

当你离开
的时候
加上结束
标签

谢谢你的回复。这是否意味着我一开始就不需要这个?如果($i==1){echo';}是,则示例将删除该选项。不需要初始的$i===1条件hmmm它似乎几乎可以工作,但不完全可以…我实际上有一个外部容器,它包围了while循环的外部,但是使用您的代码,容器在外部容器的外部…听起来很混乱,我知道,让我用外部容器更新我的代码,这样你就明白我的意思了。所以,使用你的代码,它会生成,看看外部容器是如何在第一个内部容器之前关闭的……它应该包围内部容器。
<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>
if ( $i === 8 || $images->total === $images->current + 1 ) {
    echo '</div><!--.container-->';
    echo '<div class="container">'; //ADD THIS LINE!!!
}