ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

php foreach кратное трём

 

2970
удалён @Foggy
мужики! что-то туплю.

есть вот такой foreach, который проходит по массиву отзывов
<div class="fotorama">
<?$br = 3;?>
<?foreach ($text['reviews'] as $i => $review) { ?>
<? if($i % $br == 0) {?>
<div class="reviews__slide">
<? }?>
<div class="reviews__review thumb fotorama__select">
<div class="thumb__text"><?=$review?></div>
</div>
<? if(($i+1) % $br == 0) {?>
</div>
<? }?>
<?}?>
</div>

.reviews__slide это один слайд слайдера. в нём показывается 3 отзыва (число из переменной $br)

проблема вот в чём: если в массиве отзывов число отзывов не кратно трём, то проверка ($i+1) % $br == 0 не срабатывает и .reviews__slide не закрывается. соответственно, вёрстка едет.
подскажите, как правильно написать эту проверку. или, может вообще по-другому как-то проверяют на кратность? поделитесь best practices.

Отредактировано Foggy - 03.05.2015
2615
Сергей @Pegass
чисто поржать - а почему условие открытия reviews__slide не соответствует условию закрытия? и какого лешего вообщe foreach а не for?


<div class="fotorama">
<?$br = 0;?>
<?foreach ($text['reviews'] as $i => $review) { ?>
<?
$br++;
if($br == 1) {?>
<div class="reviews__slide">
<? }?>
<div class="reviews__review thumb fotorama__select">
<div class="thumb__text"><?=$review?></div>
</div>
<? if($br == 3) {
$br=0;
?>
</div>
<? }?>
<?}?>
</div>

Отредактировано Pegass - 03.05.2015
20089
Dimitry @Dimitry
Ну на вскидку надо бы в скобки обводить так

if(($i % $br) == 0)