dqq3623 2015-09-13 15:29
浏览 92
已采纳

在foreach中包裹div.container

Maybe a simple question, here it goes. I have a simple php foreach script that output results fine. I need to wrap results with a container div for every second item. Example could be:

What script looks like

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++; 
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
endforeach;

Will output:

<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>

But i need following example: A container div wrapped around range for every second result. Like this:

<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>
<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>
<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>

I tried with:

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++; 
   if($i%2 == 0) {
     echo $i > 0 ? "</div>" : "";
     echo "<div class='container'>";
   }
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
endforeach;

But that will not work correctly with the result that I am looking for :) Ideas? =)

  • 写回答

3条回答 默认 最新

  • dpbe81245 2015-09-13 15:44
    关注

    This snippet should get you what you need

    $result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
    $i = 0;
    foreach ($result as $date):
       $i++;
       if($i%2 == 1) {
           echo '<div class="container">';
       }
       echo '<div class="range" data-range="'. $date->id .'"></div>';
       if($i%2 == 0) {
           echo '</div>';
       }
    endforeach;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度