0

首先,我不知道如何在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

我希望我解释了我想做什么,现在我会等待你的答案,

ps 这更多是为了我的学习技能而不是实际工作,所以谢谢你的建议

4

3 回答 3

0

这很简单。使用条件

if ($wi && $wi % 13 == 0) {
    print '</ul><ul>';
}
于 2013-07-07T09:34:20.937 回答
0

为了计算 13 个元素,您可以使用模运算符%。这个想法是,如果 的内容是 13 的倍数,($iw % 13)则等于 0。 (请参阅有关模运算的更多信息$iw

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

于 2013-07-07T09:34:33.503 回答
0

我能想到的有两种可能:

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

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

如果你不确定是什么%意思,这里是适当的PHP 手册页

于 2013-07-07T09:35:22.247 回答