我正在检查循环中的条目是否是第3次迭代,使用以下代码:
<?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'], '>>', array('class' => 'forward')); ?>
</div>
</div>
<?php if ($i % 3 == 2) : ?>
</li><li class="row">
<?php endif; ?>
<?php endfor; ?>
如何检查循环是否在第2次而不是第3次迭代?
我试过$i % 2 == 1
无济于事。
答案 0 :(得分:16)
模数检查分裂的剩余部分。
如果$ i是10,10 / = 5且没有剩余,那么$ i模数2将为0 如果$ i是10,10 / 3 = 3且剩余1,那么$ i模数3将为1。
为了让您更容易跟踪项目数量,我将从1而不是0开始$ i。例如
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!';
希望它可以理解。 晒。
答案 1 :(得分:8)
如有疑问,请写一个snippet of code:
for ($j = 1; $j < 4; $j++)
{
for ($k = 0; $k < $j; $k++)
{
echo "\n\$i % $j == $k: \n";
for ($i = 0; $i < 10; $i++)
{
echo "$i : ";
if ($i % $j == $k)
{
echo "TRUE";
}
echo " \n";
}
}
}
这是输出。用它来确定你需要使用的东西:
$i % 1 == 0:
0 : TRUE
1 : TRUE
2 : TRUE
3 : TRUE
4 : TRUE
5 : TRUE
6 : TRUE
7 : TRUE
8 : TRUE
9 : TRUE
$i % 2 == 0:
0 : TRUE
1 :
2 : TRUE
3 :
4 : TRUE
5 :
6 : TRUE
7 :
8 : TRUE
9 :
$i % 2 == 1:
0 :
1 : TRUE
2 :
3 : TRUE
4 :
5 : TRUE
6 :
7 : TRUE
8 :
9 : TRUE
$i % 3 == 0:
0 : TRUE
1 :
2 :
3 : TRUE
4 :
5 :
6 : TRUE
7 :
8 :
9 : TRUE
$i % 3 == 1:
0 :
1 : TRUE
2 :
3 :
4 : TRUE
5 :
6 :
7 : TRUE
8 :
9 :
$i % 3 == 2:
0 :
1 :
2 : TRUE
3 :
4 :
5 : TRUE
6 :
7 :
8 : TRUE
9 :
答案 2 :(得分:7)
现在回答:
如何检查循环是否在第2次交互,而不是第3次我尝试过,
$i % 2 === 0
答案 3 :(得分:1)
您需要的每三次迭代
if ($i % 3 === 0)
如果特定的第三次迭代则
if ($i === 3)
答案 4 :(得分:0)
我认为应该是:
if ($i % 2 == 0)
答案 5 :(得分:0)
试试这个,应该适用于每第3次迭代:
if ($i % 3 === 0)
答案 6 :(得分:0)
要回答这个问题:
如何检查循环是否在其第二次 AND 中而不是其第三次迭代中?
当您要在条件中执行两件事时,我们使用逻辑运算符&&
。要引用官方文档...
示例:
$a && $b
名称:和
结果:如果
TRUE
和$a
均为$b
,则TRUE
。
因此,对于代码,您需要...
if($i % 2 === 0 && $i % 3 !== 0) {
// Loop is in its second and not its third iteration!
}
我们使用一个模数来解决这个问题,它返回除以2和2的除法余数。