每13个li元素后创建新的ul

时间:2013-07-07 09:21:52

标签: php html opencart

首先,我不知道如何计算php,也许有人可以推荐我一个很好的阅读源;

其次,我不是要求为我解决这个问题,但我只是想要一个有意义的暗示或更简单的解释;

这是我的功能:

  <ul>
    <?php foreach ($categories as $category) { ?>
    <li>
    <a href="<?php echo $category['href']; ?>"><p><?php echo $category['name']; ?></p></a>
      <?php if ($category['children']) { ?>
      <div>
        <?php for ($i = 0; $i < count($category['children']);) { ?>
          <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
          <?php for (; $i < $j; $i++) { ?>
          <?php if (isset($category['children'][$i])) { ?>
        <ul>      
          <li class="none"><h1><?php echo $category['children'][$i]['name']; ?></h1></li>
        <?php if ($category['children'][$i]['children_level2']) { ?>     
        <?php for ($wi = 0; $wi < count($category['children'][$i]['children_level2']); $wi++) { ?>
           <li> 
          <a href="<?php echo $category['children'][$i]['children_level2'][$wi]['href']; ?>"><?php echo $category['children'][$i]['children_level2'][$wi]['name']; ?></a>
           </li>
         <?php } ?>
         <?php } ?>         
        </ul>
        <?php } ?>
        <?php } ?>
        <?php } ?>
      </div>
      <?php } ?>
    </li>
    <?php } ?>
  </ul> 

我想要这个部分,每13个li元素创建一个新的.ul。 ./ul。标签

<?php if (isset($category['children'][$i])) { ?>
   <ul>      
      <li class="none"><h1><?php echo $category['children'][$i]['name']; ?></h1></li>
        <?php if ($category['children'][$i]['children_level2']) { ?>     
        <?php for ($wi = 0; $wi < count($category['children'][$i]['children_level2']); $wi++) { ?>
          <li> 
          <a href="<?php echo $category['children'][$i]['children_level2'][$wi]['href']; ?>"><?php echo $category['children'][$i]['children_level2'][$wi]['name']; ?></a>
       </li>
         <?php } ?>
         <?php } ?>         
    </ul>

  <ul><li>maximum of 13 elements</li></ul>
after 13 <li></li> elements create new <ul></ul> tags and put the 14 <li></li> element into the new <ul></ul> tag

我希望我解释了我想做的事情,现在我将等待你的回答,

P.S。这更多是为了我的学习技巧和实际工作,所以谢谢你的建议

3 个答案:

答案 0 :(得分:0)

这很简单。使用条件

if ($wi && $wi % 13 == 0) {
    print '</ul><ul>';
}

答案 1 :(得分:0)

为了计算13个元素,您可以使用模运算符%。我的想法是($iw % 13)如果$iw的内容是13的倍数,则等于0.(see more about the modulo operation

使用if语句,您可以在</ul><ul>循环中根据需要插入for

答案 2 :(得分:0)

我能想到两种可能性:

  • 你可以有一个单独的计数器,它会重置为1并在每次达到13时输出<ul>
  • 或者您可以每次检查$wi ID是否可以被13整除:

     <?php
     for ($wi = 0; $wi < count($category['children'][$i]['children_level2']); $wi++) {
        if ($wi && $wi % 13 == 0) {
            // output <ul>
         }
     }
     ?>
    

如果您不确定%的含义,请选择适当的PHP manual page