是否有更好的方法来处理某些迭代而不是if语句?

时间:2014-03-20 20:52:53

标签: php if-statement for-loop

我正在努力实现相当复杂的布局。我已经设法做到了,但无法帮助认为IF声明在细化方面有点缺乏。

我有一个循环遍历网格项目的for循环,第一个项目和每个第五个项目都更大,每隔一个大项目浮动到右边而不是左边。连续每个大型物品有四个小物品(因此大号与四个小物品大小相同)。

我认为我的IF不是特别优雅,也限制了网格的大小。

$i = 0;
foreach ($items as $item) { 
    if ($i % 5 == 0) { ?>
        <article <?php if ($i == 5 || $i == 15 || $i == 25 || $i == 35 || $i == 45 || $i == 55) { ?>style="float:right;" <?php } ?>>
        //do big item
        </article>
    } else { 
        <article>
        //do small item
        </article>
    }
$i++;
}

我还试图找出如何在另一个div中包装5个项目的每一行来帮助调整大小?我在想另一块if($ i%5 == 0){可能对此有所帮助,但我也意识到加载时间和最佳实践。

一如既往的帮助,非常感谢!

1 个答案:

答案 0 :(得分:2)

介绍第二个mod运算符。例如。

if ($i % 5 == 0){
 if ( ($i-5) % 10 == 0 ){
   // so this will work for values of %i = 5, 15, 25, 35 ...
   // big article
 }else{
   // small article
 }
$i++ ; // as previous comment @javad pointed out. You are not incrementing i