在PHP中的每三次迭代 [英] On every third iteration in PHP

查看:118
本文介绍了在PHP中的每三次迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在PHP的循环的第三次迭代中输出一些特定的HTML。这是我的代码:

I would like to output some specific HTML on the third iteration of a loop in PHP. Here is my code:

<?php foreach ($imgArray as $row): ?>
   <div class="img_grid"><?= $row ?></div>
<?php endforeach; ?>

在此循环的第三次迭代中,而不是显示:

On the third iteration of this loop, Instead of displaying:

<div class="img_grid"><?= $row ?></div>

我想显示:

<div class="img_grid_3"><?= $row ?></div>

如果我的数组循环8次,我想最终得到这个:

I would like to end up with this if my array looped 8 times:

   <div class="img_grid">[some html]</div>
   <div class="img_grid">[some html]</div>
   <div class="img_grid_3">[some html]</div>
   <div class="img_grid">[some html]</div>
   <div class="img_grid">[some html]</div>
   <div class="img_grid_3">[some html]</div>
   <div class="img_grid">[some html]</div>
   <div class="img_grid">[some html]</div>

谢谢

推荐答案

假设 $ imgArray 是一个数组而不是关联数组(即它有数字索引),这就是你想要的:

Assuming $imgArray is an array and not an associative array (i.e. it has numeric indices), this is what you want:

<?php foreach($imgArray as $idx => $row): ?>
  <?php if($idx % 3 == 2): ?>
    <div class="img_grid_3"><?php echo $row; ?></div>
  <?php else: ?>
    <div class="img_grid"><?php echo $row; ?></div>
  <?php endif; ?>
<?php endforeach; ?>

你可以将它收紧一点:

<?php foreach($imgArray as $idx => $row):
        if($idx % 3 == 2) {
          $css_class = 'img_grid_3';
        } else {
          $css_class = 'img_grid';
        }
?>
  <div class="<?php echo $css_class; ?>"><?php echo $row; ?></div>
<?php endforeach; ?>

甚至更多(有些人会在HTML中使用三元条件内联),但是收益递减法最终会在可读性方面发挥作用。不过,希望这能给你一个正确的想法。

Or even more (some folks would just go with a ternary conditional inline in the HTML), but the law of diminishing returns kicks in eventually with regard to readability. Hopefully this gives you the right idea, though.

这篇关于在PHP中的每三次迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆