根据数值将DIV放在包含DIV中

时间:2013-10-21 08:48:38

标签: php modulus

我得到了以下PHP:

<div class="slide-background">

       <div class="slide">
          <?php foreach (array_chunk($items->submenu, $linkCount) as $items): ?>
          <?php if (12 / $cols == 1):?>
          <div class="col-md-12">
             <?php else: ?>
             <div class="col-md-<?php echo 12 / $cols; ?>">
                <?php endif; ?>
                <ul>
                   <?php foreach($items as $submenu): ?>
                   <?php echo $submenu; ?>
                   <?php endforeach; ?>
                </ul>
             </div>
             <?php endforeach; ?>
          </div>
          <ul class="pager">
             <li>prev</li>
             <li>next</li>
          </ul>
       </div>
    </div>

基本上它会计算要显示的链接数和列数,但我现在需要将链接放在<div class="slide"></div>中,但是基于列..所以基本上我需要说$ cols = 2个地方div中的两个div并且关闭..所以它基本上每个$ cols应该放在那个div中的那么多div ...

让我感到困惑甚至解释..我想我已经在上面解释了它..如果没有地方这么说并生病再试一次..

任何帮助都非常赞赏..

更新

感谢Hans ive现在拥有以下内容:

<?php $linksPerColumn = ceil($linkCount / $cols); $linkCounter = 0;?>
<div class="slide-background">

       <div class="slide">
          <div class="col-md-<?php echo 12 / $cols ?>">
             <ul>
                <?php foreach ($items->submenu as $link): ?>
                <?php $linkCounter++;?>
                <?php if($linkCounter % $linksPerColumn == 0):?>
             </ul>
          </div>
          <div class="col-md-<?php echo  12 / $cols ?>">
             <ul>
                <?php endif; ?>
                <?php echo $link; ?>
                <?php endforeach; ?>
             </ul>
          </div>
       </div>
       <ul class="pager">
          <li>prev</li>
          <li>next</li>
       </ul>
    </div>
    </div>

唯一的问题是,当只有一列时,我需要2个链接,然后关闭div和ul并启动新的..现在它除了每个人而不是每两个链接都这样做...

1 个答案:

答案 0 :(得分:1)

你可以使用模数。您应该计算每列需要的项目数。然后创建一个close和open div,例如:

<?    
$linksPerColumn = 4;
if ($linkCount > 4){
   $linksPerColumn = ceil ($linkCount / $amountOfColums);
}
$linkCounter = 0;
?>
<div class="slide-background">
   <div class="slide">
<?
   foreach ($links as $link)
   {
     $linkCounter++;
?>
// Do your HTML Here. 
<?
   if($linkCounter % $linksPerColumn = 0)
   {
?>
   </div>
   <div class="slide">
<?
   }
?>
   </div>
</div>
// Rest of the HTML here.

我认为这应该适合你。