在foreach循环上运行三次迭代

时间:2017-04-08 20:58:48

标签: php

我在一个页面上运行一个列表,每行有三列。每列需要不同的类,我需要找到一种方法在foreach循环中返回这些类以实现以下...

<div class="row">
  <div class="box_skin1">...</div>
  <div class="box_skin2">...</div>
  <div class="box_skin3">...</div>

  <div class="box_skin1">...</div>
  <div class="box_skin2">...</div>
  <div class="box_skin3">...</div>
</div>

我目前正在使用以下内容来交替行,但现在需要添加第三行......我该怎么做?

    <?php $counter = 1; ?>
<div class="row">
    <?php foreach ($newsRecords as $record): ?>
        <?php if($counter % 2) : ?>
             <!-- ROW 1 -->
             <div class="box_skin1">...</div>
        <?php else : ?>
             <!-- ROW 2 -->  
             <div class="box_skin2">...</div>
        <?php endif; ?>       
     <?php $counter++; ?>
    <?php endforeach ?>
</div>

2 个答案:

答案 0 :(得分:2)

这应该有效

<强> EDITED

<?php $counter = 1; ?>
<div class="row">
    <?php foreach ($newsRecords as $record): ?>
        <?php if($counter % 3 == 0) : ?>
             <!-- ROW 3 -->
             <div class="box_skin3">...</div>
        <?php elseif ($counter % 3 == 2) : ?>
             <!-- ROW 2 -->  
             <div class="box_skin2">...</div>
        <?php elseif  ($counter % 3 == 1): ?>
             <!-- ROW 1 -->  
             <div class="box_skin1">...</div>

        <?php endif; ?>       
     <?php $counter++; ?>
    <?php endforeach ?>
</div>

答案 1 :(得分:0)

IF-ELSE免费结构。如果你打算添加新的div,那么你不必添加新的else-if条件只需要增加计数器大小就可以了。它可以工作。

<?php $counter = 1; ?>
 <div class="row">
    <?php foreach ($newsRecords as $record): ?>
       <div class="box_skin<?php echo $counter; ?>">...</div>
     <?php 
      $counter++; 
      if ($counter >= 3) {
         $counter = 1;
       }
     ?>
    <?php endforeach ?>
</div>