如何在php循环中创建引导html结构


How to create bootstrap html structure in php loop?

我正在使用引导程序,需要创建这样的结构

    <div class="row">
        <div class="col-sm-3">
            <!--content loop 1-->
        </div>
        <div class="col-sm-3">
            <!--content loop 1-->
        </div>
        <div class="col-sm-3">
            <!--content loop 2-->
        </div>
        <div class="col-sm-3">
            <!--content loop 2-->
        </div>
    </div>
    <div class="row">
        <div class="col-sm-3">
            <!--content loop 3-->
        </div>
        <div class="col-sm-3">
            <!--content loop 3-->
        </div>
        <div class="col-sm-3">
            <!--content loop 4-->
        </div>
        <div class="col-sm-3">
            <!--content loop 4-->
        </div>
    </div>

我需要在单个 foreach 循环中创建它,但在每个循环中我只创建这个结构。

    <div class="col-sm-3">
        <!--content loop 1-->
    </div>
    <div class="col-sm-3">
        <!--content loop 1-->
    </div>

我可以在循环之外创建第一个<div class="row"></div>,但是我怎样才能脱离循环来创建第二个<div class="row"></div>并继续循环

你可以做这样的事情。您可以根据需要进行修改。我刚刚提到了逻辑

   <div class="row">
     <?php
         $i = 0;
         foreach(....../*your code*/){
           if($i == 4){
               $i = 0;
              ?>
                  </div><div class="row">
                <?php
            } 
                ?>
            <div class="col-sm-3">
               <!--content-->
            </div>
          <?php
            $i++;
         }
        ?>
        </div>

遵循以下逻辑非常简单:

for($i = 0;$i < 4;$i++) {
    echo '<div class="row">';
    for($j = 0;$j < 4;$j++) {
        echo '<div class="col-sm-3"></div>';
    }
    echo '</div>;'
}
我喜欢

这样做,因为我认为更干净,更易于管理:

<?php
    $colsOffset = 4;
    $items = array('content1','content2','content3','etc...');
    $i = 0;
?>
<?php foreach ( $items as $item ) { ?>
    <?php echo ($i % $colsOffset == 0 || $i == 0) ? '<div class="row">' : '' ?>
    <div class="col-sm-3">
       <!--content loop-->
    </div>
    <?php echo (($i + 1) % $colsOffset == 0 || ($i + 1) == count($items)) ? '</div>' : '' ?>
    <?php $i++; ?>
<?php } ?>