如何在PHP的每3次迭代中获得不同的内容

时间:2016-09-20 19:28:07

标签: php if-statement while-loop

我试图创建一个while语句,它会为第4个提供不同的结果,之后每3个提供不同的结果。

所以它将成为迭代1,4,7,10等

这是我的

$count = $query->post_count;
$i = 1;
$located="";

while ( $query->have_posts() ) : $query->the_post();

$located.= '<h2 class="gold"><a href="'.get_permalink().'">'.get_the_title().'</a></h2>';
$located.= $shopaddress.'</br>';
$located.= $opentime.' - '.$closetime.'</br>';
$located.= $shopphone.'</br>';
    if ($i == '1' || $i == '4'){ 
        $located.=".";  
    }else { 
        $located.=", ";
    }
$i++;

ENDWHILE;

我在想这会起作用

    if ($i - 1 % 3 == 0){ 
        $located.=".";  
    }else { 
        $located.=", ";
    }

但是我没有返回结果不同的结果(可能是数学设置错误)

if ($i % 3 == 1) 
这似乎有效,但我不确定为什么,如果它只是一个侥幸。这是怎么回事?

1 个答案:

答案 0 :(得分:1)

你很接近......你只需要考虑操作的顺序并将你的操作员分组 - 它应该是:

if (($i - 1) % 3 == 0) 

你的陈述首先执行模数,所以当$ i = 4时,你有(4 - (1%3)),等于3。