Foreach 并继续创建子菜单列
Posted
技术标签:
【中文标题】Foreach 并继续创建子菜单列【英文标题】:Foreach and continue to create submenu columns 【发布时间】:2014-01-16 12:21:42 【问题描述】:我正在使用 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 语句中使用的“继续”,但某些代码(例如将 span6 类添加到 ul)不在 foreach 语句中。如何修改我的代码以获得预期的结果?
【问题讨论】:
你有没有考虑过使用像Mustache这样的模板引擎? @Brodie - 感谢您的链接。老实说,这有点让我头疼,但我会进一步研究。 我推荐这个Net Tuts tutorial 让你开始。 【参考方案1】:为此,您需要使用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++;
?>
这相当粗糙,可能可以稍微清理一下,但应该可以工作(未经测试)
【讨论】:
嗨,感谢您为我指明了正确的方向。您的示例还没有完成,但至少现在我有一些东西可以使用。谢谢以上是关于Foreach 并继续创建子菜单列的主要内容,如果未能解决你的问题,请参考以下文章