Foreach并继续创建子菜单列

时间:2014-01-16 12:21:43

标签: php twitter-bootstrap foreach continue

我正在使用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语句。如何修改我的代码以获得所需的结果?

1 个答案:

答案 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++;
} 
?>

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