0

我有以下 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 中并关闭。 . 所以基本上它应该在那个 div 中放置这么多 div 的每个 $cols 有多少 ..

我什至无法解释它让我感到困惑..我认为我已经在上面解释得很好..如果没有地方这么说,我会再试一次..

非常感谢任何帮助..

更新:

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

<?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 并开始新的.. 现在它会这样做,除了每个人,而不是每两个链接......

4

1 回答 1

0

您可以为此使用模数。您应该计算每列需要多少项目。然后创建一个关闭和打开的 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.

我认为这应该对你有用。

于 2013-10-21T09:20:28.567 回答