如果“if”条件与索引计数匹配,我的 foreach 会在输出中返回一个额外的空元素。
这是我的代码
<ul id="toplevel" class="menu">
<?php
foreach($categories as $category){
$parenturl = 'some url'.$category->category_id;
$parentname = $category->category_name;
?>
<li>
<?php echo link($parenturl, $parentname); ?>
<?php if($category->childs) : ?>
<ul>
<li>
<?php echo link($parenturl, $parentname); ?>
<ul>
<?php
$i=0;
foreach($category->childs as $child){
$i++;
$childurl = 'some url'.$child->category_id;
$childname = $child->category_name;
?>
<li><?php echo link($childurl, $childname); ?></li>
<?php
if($i % 10 == 0) :
?>
</ul></li><li><?php echo link($parenturl, $parentname); ?><ul>
<?php
endif;
}
?>
</ul>
</li>
</ul>
<?php endif; ?>
</li>
<?php
}
?>
</ul>
因此,如果 $child 正好有 10 个项目,那么这将输出 11,我不知道为什么。
输出如下所示:
<ul id="toplevel" class="menu">
<li>
<a>Main Category</a>
<ul>
<li>
<a>Main Category</a>
<ul>
<li><a>Sub 1</a></li>
<li><a>Sub 2</a></li>
<li><a>Sub 3</a></li>
<li><a>Sub 4</a></li>
<li><a>Sub 5</a></li>
<li><a>Sub 6</a></li>
<li><a>Sub 7</a></li>
<li><a>Sub 8</a></li>
<li><a>Sub 9</a></li>
<li><a>Sub 10</a></li>
</ul>
</li>
<li>
<a>Main Category</a>
<ul> </ul>
</li>
</ul>
</li>
</ul>
我一直在玩计数,但每次当 $child 与数字集匹配时,它都会再输出一个。但是,如果 $child 的项目数少于或多于计数,则它可以正常工作。
HTML 看起来像这样,因为我使用的是 Design Chemical 的 jQuery Verical Megamenu 并且需要这种布局