如何将类别分为三列一行


How to divide categories in rows of three columns

我有一个foreach循环,它检索当前类别的子类别。

<?php $_categories = $this->getCurrentChildCategories(); ?>
<?php foreach ($_categories as $_category): ?>
<div class="item">
    <a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?></a>
</div>
<?php endforeach; ?>

我想把结果分成三列一行。所需的格式是:

<div class="row">
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
</div>
<div class="row">
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
</div>
...

---------------编辑------------------

我的代码如下。如何以及在哪里关闭行div?

<?php $_categories = $this->getCurrentChildCategories(); ?>
<?php foreach ($_categories as $_category): ?>
<?php if ($i % 3 == 0) { ?>
<div class="row">
<?php } ?>
<div class="item">
    <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?> &raquo;</a></h2>
</div>
<?php $i++; endforeach; ?>

---------------编辑2-------------------

越来越近了。这就是结果:

<div class="category-list">
    <div class="row"></div>
<div class="row">
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
</div>
<div class="row">
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
</div>
<div class="row">
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
    <div class="item">
        content
    </div>
</div>
</div>

我该如何摆脱空排?

代码如下:

<div class="category-list">
<?php
$i=0;
echo '<div class="row">';
$_categories = $this->getCurrentChildCategories();
foreach($_categories as $_category):
{
if($i %3 ==0)
  { ?>
     </div>
     <div class="row">
        <div class="item">
            <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?> &raquo;</a></h2>
        </div>
  <? }
  else
  { ?>
        <div class="item">
            <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?> &raquo;</a></h2>
        </div> 
  <? }
  $i++;
}
endforeach;
?>
</div>

---------------编辑3-------------------

通过CSS隐藏空行解决。

您必须引入az迭代器(?)变量,例如$i=0

if ($i % 3 == 0) { //modulo
   // use for whatever you want
}

在每个周期中(可能在周期结束时,这取决于您的实际解决方案),您必须增加$i(++$i);

希望这能帮助

<?php
$i=0;
echo"<div class="row" >
foreach($category as $cat)
{
if($i %3 ==0)
  {
     echo"</div><div class='row'> <div class='item'> Content </div>";  
  }
  else
  {
    echo"<div class='item'> Content </div>";  
  }
  $i++;
}
echo"</div>";
?>