PHP如果计数器等于x或y

问题描述:

我想安排我的WP帖子在页面顶部有一个全角帖子,然后每行3个帖子。PHP如果计数器等于x或y

我有一切显示,但我留下来的是3如果我的专栏之前和之后的声明。我确信这很简单,但是当我尝试使用“if($ counter == 1 | 4 | 7)”时,我得到了每个div的一行。有没有更简洁的方式来写这个并得到相同的结果?

<?php if <?php if ($counter == 1) : ?>: ?> 

    <div class="row"><!-- .row - 1 --> 

<?php elseif ($counter == 4) : ?> 

    <div class="row"><!-- .row - 4--> 

<?php elseif ($counter == 7) : ?> 

    <div class="row"> <!-- .row - 7 --> 

<?php endif; ?> 

     <div class="col-md-4"> 

     <p>Content</p> 

     </div> 


<?php if ($counter == 3) : ?> 

     </div><!-- .row 3 --> 

<?php elseif ($counter == 6) : ?> 

     </div><!-- .row 6 --> 

<?php elseif ($counter == 9) : ?> 

     </div><!-- .row 9 --> 

<?php endif; ?> 
+0

'如果($计数器== 1 || $计数器== 4 || $反== 7)' –

+0

您或许可以使用模运算符,'如果($计数器%3 == 1)',后者等于零。 – Qirel

+0

希望第一行是一个复制/粘贴错误,否则你需要纠正它 – jeff

另一种解决方案是使用in_array(特别是如果选项是随机的并且有很多这些选项)

if (in_array($counter, [1, 4, 7])) 

另请注意,符号是一个按位运算符。这里了解更多:

http://php.net/manual/en/language.operators.bitwise.php

+0

谢谢迈克尔,这正是我一直在寻找的。 – Wilko

尝试使用模,所以你不要有写一个条件每一样东西3:

if ($counter % 3 == 0) 

将匹配任何时间计数器是3的倍数,你可以更改号码以匹配任何你想要的条件。

+0

我试过这个,但它打破了布局。我想是因为我已经有了一个全宽的列。 – Wilko

在PHP中的多个语句是作为单独的案例编写的。即

if ($counter == 1 || $counter == 4 || $counter == 7) 

但在你的情况下,使用模运算符,它返回(除法的余数),它可以被简化为:

if ($counter%3 == 1) { 
    // Open div 
} 

if ($counter%3 == 0) { 
    // Close div 
}