如何在php foreach中显示每个循环的两个结果

时间:2014-04-17 11:51:14

标签: arrays codeigniter foreach

我有一个组合表,其中有行数,在我的网站的前端,我有li,其中有div,现在我想在每个li中显示两个div,就像在第一个li有投资组合项目1和项目组合项目2和下一项项目组合项目3和项目组合项目4

以下是我的代码

<ul class="slides">
                <?php for($i = 1; $i <= round(count($projlists)/2); $i++) { ?>
                <li>
                <?php foreach($projlists as $projlist) { ?>
                  <div class="span3"> <a class="thumbnail" href="#"> <img alt="260x180" data-src="holder.js/260x180" style="width: 260px; height: 180px;" src="<?=base_url()?>uploads/portfolio/full/<?=$projlist->portfolio_image?>"> </a> </div>
                  <?php } ?>
                </li>
                <?php  } ?>
              </ul>

以下是我的模特

function projectlist()
{
    $query = $this->db->query("SELECT * FROM portfolio WHERE status = 1");
    if($query->num_rows() > 0) 
    {
        foreach($query->result() as $row) 
        {
            $data[] = $row;
        }
    return $data;
    }   
}

注意:我正在使用codeigniter

1 个答案:

答案 0 :(得分:1)

要在循环中的一个li中显示两个div,您可以这样做,定义一个标志变量并为循环的每次迭代递增它,并检查带有2的标志的模数是否为零,即$index % 2 == 0然后关闭li和打开李

<ul class="slides">
    <li>
        <?php
        $index = 0;
        foreach ($projlists as $projlist) {
            ?>
            <div class="span3">
                <a class="thumbnail" href="#">
                    <img alt="260x180" data-src="holder.js/260x180" style="width: 260px; height: 180px;"
                         src="<?= base_url() ?>uploads/portfolio/full/<?= $projlist->portfolio_image ?>">
                </a></div>
            <?php $index++;
            if ($index % 2 == 0 && $index !=count($projlists)) {
                echo '</li><li>';
            }
        } ?>
    </li>
</ul>