PHP逻辑每隔2行将一个类添加到2行

时间:2015-06-11 14:54:00

标签: php logic

任何人都可以帮助我在下面的代码中每两行添加一个类.col-md-offset-2的逻辑......

<?php while(have_rows('report_quotes')): the_row(); ?>

  <div class="col-md-12 <?php // help me ?>">

     <?php /* quote */ ?>
     <?php Post::get_template_part('sections/quote'); ?>

  </div>

<?php endwhile; ?>

所以输出看起来像这样......

<div class="col-md-12">...</div>
<div class="col-md-12">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
<div class="col-md-12">...</div>
<div class="col-md-12">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
<div class="col-md-12">...</div>
<div class="col-md-12">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
<div class="col-md-12 col-md-offset-2">...</div>
...

有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:1)

添加一个跟踪当前循环索引的指针,并在使用模运算符的迭代中检查它是第3个还是第4个。

像这样:

<?php 
    $i = -1;
    while(have_rows('report_quotes')): the_row();
    $i++;
?>

    <div class="col-md-12
        <?php if ( ($i % 4) == 2 || ($i % 4) == 3 ) { echo 'col-md-offset-2'; } ?> ">

        <?php /* quote */ ?>
        <?php Post::get_template_part('sections/quote'); ?>

    </div>

<?php endwhile; ?>

答案 1 :(得分:1)

您可以使用模数运算符(%)

来完成此操作
<?php $i = 0; while($i < 6): ++$i; ?>
 <div class="col-md-12 <?=in_array($i % 4, array (0,3)) ? 'col-md-offset-4' : null ?>">...</div>
<?php endwhile; ?>

所以在你的情况下 -

<?php $i = 0; while(have_rows()): the_row(); ++$i; ?>
 <div class="col-md-12 <?=in_array($i % 4, array (0,3)) ? 'col-md-offset-4' : null ?>">
    <?php /* quote */ ?>
    <?php Post::get_template_part('sections/quote'); ?>
 </div>
<?php endwhile; ?>

这基本上得到每个增量的余数,在我们的例子中,我们知道如果余数为0(可被4整除)或3,则它应该缩进。

答案 2 :(得分:0)

添加一个计数器以了解您所在阵列的哪一行并使用模数:

<?php 
$i = 0;
while(have_rows('report_quotes')): the_row(); ?>

   <div class="col-md-12 <?php if (($i%4==2)||($i%4==3) {echo ' col-md-offset-2'; } ?> ?>">


     <?php Post::get_template_part('sections/quote'); ?>

  </div>

<?php endwhile; ?>
相关问题