Здравствуйте, цикл 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>
надеюсь, это поможет