我正在使用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>
我一直在调查'continue'以在foreach语句中使用,但是一些代码(例如将span6类添加到ul)不属于foreach语句。如何修改我的代码以获得所需的结果?
答案 0 :(得分:2)
为此,您需要使用modulus operator:
<?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++;
}
?>
这是相当粗糙的,可能会被清理一下,但应该可以工作(未经测试)