每三次PHP循环迭代

时间:2014-05-18 18:14:47

标签: php loops iteration offset

当我说'Every 3rd Iteration'时,我的意思是'每第3次迭代......从4号开始'

如果它只是每隔3个,我会像这样定位适当的迭代:

<?php if ($count % 3 == 0) : ?>

请记住我事先将$count设置为1

但是迭代需要从第4个开始,然后是第7个,第10个等等。

有谁知道我怎么能做到这一点?我可以使用上面的简单if语句来完成吗?

不幸的是我不认为for循环是可能的,因为这是我正在处理的WordPress循环

2 个答案:

答案 0 :(得分:4)

您对使用模数运算符的想法是合理的,您只需要扩展围绕它的逻辑范围:

您希望在初始4之后的每第三次迭代都通过。在第一个4之后开始你的逻辑:

if ($count > 4)

然后,你想要每个3之后。您的计数器包含您不想包含的最初4次迭代,因此从计数器中删除它并检查当前迭代是否是3的倍数:

if (($count - 4) % 3 === 0)

这可以为您提供您正在寻找的东西。

if ($count > 4)
{
    if (($count - 4) % 3 === 0)
    {
        ...
    }
}

你也可以把它放在一行:

if ($count > 4 && ($count - 4) % 3 === 0)
{
    ...
}

答案 1 :(得分:1)

foreach($array as $key=>$value){
    if($key % 3 != 0){
        continue;
    }
}