download1002 2014-04-03 15:35
浏览 63
已采纳

在打印2行后,php foreach甚至奇数反之亦然

In my application I have to loop images with two sizes. Lets call them large and small.. These images are in two columns like below.

large small
large small
large small

I produce the larage/small image by a class by doing this now like this:

<?php $count = 0; ?>
<?php foreach ($posts as $post) : ?>
<div class=" <?=(++$count%2 ? "col-7 pr-10" : "col-5 pl-10");?> mt-15">
<?php endforeach; ?>

What I would like to do here by now is to produce this list;

large small
small large
large small
etc..

In what kind of way can I do this? I guess I have to create a kind of reset after each 2 entries and set odd to eve and vise versa ?

  • 写回答

3条回答 默认 最新

  • doujue6196 2014-04-03 15:42
    关注

    In general if you need A B; B A; A B; etc in consecutive loops, you could do this:

    $row = 0;
    foreach ($posts as $post) {
      if ($row%2) echo "A, B
    "; else echo "B, A
    ";
      $row++;
    }
    

    This looks quite a bit like your code…

    If instead you really mean that you need to do

    A
    B
    B
    A
    

    (pattern repeating every 4th row, in essence), then a clear and reasonable approach is:

    $row = 0;
    foreach ($posts as $post) {
      $temp = $row%4;
      if ($temp == 0 || $temp == 3 ) echo "A
    "; else echo "B
    ";
      $row++;
    }
    

    This can obviously be made more compact - but I usually find that "explicit" is easier to read six months later - and the performance impact is negligible.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。