Здравствуйте, цикл for с вложенным foreach

У меня есть следующий php,

 <ul>
<?php $count = count($products); ?>
            <?php for($i=0; $i < $count; $i++ ): ?>
            <li>
                <?php foreach ($products as $k => $v) : ?>
                    <div>
                        <a href="">
                            <img src="<?php echo base_url(); ?>media/images/products/<?php echo $v['product_image_small']; ?>" alt="<?php echo $v['product_title']; ?>" rel="<?php echo $v['product_id']; ?>"/>
                        </a>
                    </div>
                <?php endforeach; ?>
           </li>
            <?php endfor; ?>
        </ul>

Чего я хочу добиться, так это создать li вложенный до 6 divс, и как только есть 6 divя хочу создать новый li, Код выше в настоящее время создает следующее,

<li>  
<div></div>  
<div></div>  
<div></div>  
<div></div>  
</li>

... однако должно быть только 2 divв моем li из-за размера массива продуктов.

2 ответа

Решение

Вы делаете цикл 2 x 2 раза вместо 2, поскольку оба цикла являются вложенными. Использовать только for или же foreach,

Чтобы ответить на ваш настоящий вопрос: как насчет чего-то вроде...

echo "<li>";
for ($i = 0; $i < $count; $i++)
{
   // ...

   if ($i % 6 == 5)
     echo "</li><li>";    
}
echo "</li>";

Я только что отредактировал твои строки:

 <ul>
<?php $count = count($products); ?>
            <?php for($i=0; $i < $count; $i++ ): ?>
            <li>
                <?php foreach ($products as $k => $v) : ?>
                    <?php if($i % 4 == 0) echo '</li><li>'; ?>
                    <div>
                        <a href="">
                            <img src="<?php echo base_url(); ?>media/images/products/<?php echo $v['product_image_small']; ?>" alt="<?php echo $v['product_title']; ?>" rel="<?php echo $v['product_id']; ?>"/>
                        </a>
                    </div>
                <?php endforeach; ?>
           </li>
            <?php endfor; ?>
        </ul>

надеюсь, это поможет

Другие вопросы по тегам