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

查看:22
本文介绍了在 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; ?>

你可以像这样收紧一点:

You could tighten it up a bit like this:

<?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天全站免登陆