一尘不染

PHP循环中的模量

php

我目前正在使用以下代码检查循环中的条目是否是第三次迭代:

<?php for ($i = 0; $i < count($category_news); $i++) : ?>

    <div class="grid_8">
        <div class="candidate snippet <?php if ($i % 3 == 2) echo "end"; ?>">
            <div class="image shadow_50">
                <img src="<?php echo base_url();?>media/uploads/news/<?php echo  $category_news[$i]['url']; ?>" alt="Image Preview" width="70px" height="70px"/>
            </div>
               <h5><?php echo $category_news[$i]['title']?></h5>
            <p><?php echo strip_tags(word_limiter($category_news[$i]['article'], 15)); ?></p>
            <?php echo anchor('/news/article/id/'.$category_news[$i]['news_id'], '&gt;&gt;', array('class' => 'forward')); ?>
        </div>
    </div>

    <?php if ($i % 3 == 2) : ?>
         </li><li class="row">
    <?php endif; ?>

<?php endfor; ?>

如何检查循环是否在其第二次迭代中,而不是在其第三次迭代中?

我试图$i % 2 == 1无济于事。


阅读 216

收藏
2020-05-29

共1个答案

一尘不染

模量检查什么是除法的剩余物。

如果$ i为10,则10/2 = 5,没有剩余,因此$ i模数2将为0。
如果$ i为10,则10/3 = 3,剩余为1,因此$ i模数3将为1。

为了使您更容易跟踪项目的数量,我将$ i从1而不是0开始。例如

for($i=1; $i <= $count; $i++)
    if($i % 2 == 0) echo 'This number is even as it is divisible by 2 with no leftovers! Horray!';
2020-05-29