Мне нужен совет по этому поводу. Если у меня есть PHP foreach loop:
<div class="wrapper">
<?php foreach ($item as $element): ?>
<!-- some HTML of $element -->
<?php endforeach; ?>
</div>
и после каждого 5-го $item
я хочу создать новый .wrapper
со следующими 5 элементами в foreach. И повторите этот шаг, пока все не закончится. Выход должен быть следующим:
<div class="wrapper">
<!-- some HTML of $element 1 -->
<!-- some HTML of $element 2 -->
<!-- to $element 5 -->
</div>
<div class="wrapper">
<!-- some HTML of $element 6 -->
<!-- to $element 10 -->
</div>
Нужно ли мне запускать еще один foreach
снаружи, чтобы сделать это возможным?
благодаря
Попробуй это
$i = 0;
<?php
foreach ($item as $element) {
if($i%5==0) echo "<div class=\"wrapper\">";
?>
<!-- some HTML of $element -->
<?php
if($i%5==4) echo "</div>";
$i++;
}
?>
Возможное решение:
<div class="wrapper">
<?php $counter = 0; ?>
<?php foreach ($item as $element): $counter++; ?>
<!-- some HTML of $element -->
<?php if ($counter % 5 === 0 && $counter !== count($item)): ?>
</div>
<div class="wrapper">
<?php endif; ?>
<?php endforeach; ?>
</div>
Попробуй это
$i = 0;
<?php foreach($item as $element) : ?>
<?php if($i == 0) : $i=5; ?>
<div class="wrapper">
<?php endif; ?>
<!-- some HTML of $element -->
<?php $i -= 1; if($i == 0) : ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
every 5 items
.