php - Foreach并继续创建子菜单列

  显示原文与译文双语对照的内容

我使用Opencart和 Bootstrap 2.3.2来尝试使用列创建子菜单。 我已经创建了一个opencart模块,它基本上是类别模块的一个副本。 我将使用这个模块来显示我在下拉菜单中的主导航中的类别。 如果有超过 5个类别的问题,那么我想在下拉菜单中创建一个新的列。

到目前为止,我的php是:


<ul class="dropdown-menu">
 <li>
 <div class="row-fluid">
 <ul class="box-category">
 <?php foreach ($categories as $category) {?>
 <li>
 <?php if ($category['category_id'] == $category_id) {?>
 <a href="<?php echo $category['href'];?>" class="active"><?php echo $category['name'];?></a>
 <?php } else {?>
 <a href="<?php echo $category['href'];?>"><?php echo $category['name'];?></a>
 <?php }?>
 </li>
 <?php }?>
 </ul>
 </div>
 </li>
</ul>

我想要的结果是:


<ul class="dropdown-menu">
 <li>
 <div class="row-fluid">
 <ul class="box-category span6">
 <li><a href="#">Category 1</a></li>
 <li><a href="#">Category 2</a></li>
 <li><a href="#">Category 3</a></li>
 <li><a href="#">Category 4</a></li>
 <li><a href="#">Category 5</a></li>
 </ul>
 <ul class="box-category span6">
 <li><a href="#">Category 6</a></li>
 <li><a href="#">Category 7</a></li>
 </ul>
 </div>
 </li>
</ul>

我一直在查找'继续'在foreach语句中使用,但是一些代码( 例如向ul类添加span6类) 在foreach语句之外。 如何修改代码以获得所需的结果?

时间: 作者:

为此,你将需要使用模运算符:


<?php $count = 0;?>
<?php foreach ($categories as $category) {?>
 <?php//The if statement should be true every fifth iteration?>
 <?php if( $count % 5 == 0) {?>
 <ul class="box-category span6">
 <?php }?>
 <li>
 <?php if ($category['category_id'] == $category_id) {?>
 <a href="<?php echo $category['href'];?>" class="active"><?php echo $category['name'];?></a>
 <?php } else {?>
 <a href="<?php echo $category['href'];?>"><?php echo $category['name'];?></a>
 <?php }?>
 </li>
 <?php if( $count % 5 == 0) {?>
 <ul class="box-category">
 <?php }?>
<?php 
 $count++;
} 
?>

这相当粗糙,可能会被清理一下,但应该能正常工作( 未测试)

作者:
...