【问题标题】:How to insert <ul> in foreach loop every 10 records如何每 10 条记录在 foreach 循环中插入 <ul>
【发布时间】:2012-09-19 22:47:25
【问题描述】:
<?php foreach($products as $product) : ?>

<li><a href="<?php echo base_url(); ?>main/products/<?php echo $product->id; ?>">
<?php echo $product->name; ?> </a></li>

<?php endforeach; ?>

所以上面的代码获取DB 中的所有记录并生成链接。表中有 100 条记录 - 我想将设计分成 5 列。所以我会在CSS 中这样做,但我需要能够附上

<ul> on every 20 records</ul>

我如何count 循环并执行此操作?

【问题讨论】:

标签: php css codeigniter


【解决方案1】:

这样做,这将解决你的问题

 <?php 
 *$i = 0;*
 echo "<ul>";
 foreach($products as $product) : 
 if($i % 20 == 0) echo "</ul><ul>"; 
?>
<li><a href="<?php echo base_url(); ?>main/products/<?php echo $product->id; ?>">
<?php echo $product->name; ?> </a></li>
<?php 
 //if($i % 20 == 0) echo "</ul>";
 $i += 1;
 endforeach; 
 echo "</ul>";
 ?>

*edit-set $i = 0;因为数组从 [0] 开始计数,通过将其设置为 [1] 使得第一个 col 有 19 而不是 20。通过将其设置为 [0] 每个 col 有 20。:) 再次感谢 ~fabio

【讨论】:

  • 是的,效果很好。我还修改了它以交换内部 ul 的效果也很好。
【解决方案2】:

这应该可以工作

<?php $products = array('1','2','3','4','5','6','8', 9, 10, 11, 12);?>
<?php $count = 0?>
<?php foreach($products as $product) : ?>
<?php $count = $count + 1; ?>
<?= (($count == 5) ? "<ul>" : '' )?>
<li><a href="<?php echo base_url(); ?>main/products/"></a></li>

<?= (($count == 5) ? "</ul>" : '')?>
<?php (($count == 5) ? $count = 0 : '' )?>
<?php endforeach; ?>

【讨论】:

    【解决方案3】:
     <?php 
         $i = 1;
         echo "<ul>";
         foreach($products as $product) : 
         if($i % 20 == 0) echo "</ul><ul>"; 
        ?>
        <li><a href="<?php echo base_url(); ?>main/products/<?php echo $product->id; ?>">
        <?php echo $product->name; ?> </a></li>
        <?php 
         $i += 1;
          endforeach; echo "</ul>"; ?>
    

    【讨论】:

    • 此代码每 20 条记录插入 1 个
        -- 无法正常工作
      • 你错过了最后一个 查看已检查的解决方案。不过谢谢!
      【解决方案4】:

      检查 php 的 array_slice 方法。它将允许您将数组分割成更小的数组,每个数组包含 20 个对象。

      【讨论】:

        【解决方案5】:
        <?php    $i=0;
                 echo "<ul>";
                 foreach($products as $product) :
                 if($i%8==0&&$i!=0) echo "</ul><ul>"; ?>
        
                 <li>
                  <a href="<?php echo base_url(); ?>main/products/<?php echo $product->id; ?>">
                   <?php echo $product->name; ?>
                  </a>
                 </li>
        
        <?php    $i+=1;
                 endforeach;
                 echo "</ul>"; ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-29
          • 2011-08-07
          • 1970-01-01
          • 2017-10-05
          • 1970-01-01
          相关资源
          最近更新 更多