PHP – добавление divs в цикл foreach каждые 4 раза

Мне нужна небольшая помощь в цикле foreach.

В основном, что мне нужно сделать, это обернуть div на выходе данных каждые 4 цикла.

У меня следующий цикл:

foreach( $users_kicks as $kicks ) { echo $kicks->brand; } 

На каждые 4 раза это эхо, что я хочу обернуть его в так, чтобы в конце он будет выглядеть так:

 <div> kicks brand kicks brand kicks brand kicks brand </div> <div> kicks brand kicks brand kicks brand kicks brand </div> <div> kicks brand kicks brand kicks brand kicks brand </div> 

и так далее.

ура

Solutions Collecting From Web of "PHP – добавление divs в цикл foreach каждые 4 раза"

 $count = 1; foreach( $users_kicks as $kicks ) { if ($count%4 == 1) { echo "<div>"; } echo $kicks->brand; if ($count%4 == 0) { echo "</div>"; } $count++; } if ($count%4 != 1) echo "</div>"; //This is to ensure there is no open div if the number of elements in user_kicks is not a multiple of 4 

Этот ответ очень поздний, но в случае, если люди это видят – это более чистое решение, без грязных счетчиков и if заявления:

 foreach (array_chunk($users_kicks, 4, true) as $array) { echo '<div>'; foreach($array as $kicks) { echo $kicks->brand; } echo '</div>'; } 

Вы можете прочитать о array_chunk на php.net

Попробуйте оператор% модуля.

 $i=1; //div begins foreach( $users_kicks as $kicks ) { if($i % 4 ==0) { //div ends //div begins } echo $kicks->brand; $i++; } //div ends 

вы также можете использовать array_chunk, который вырезает массив по блокам

 $blocks = array_chunk($users_kicks, 4); foreach ($blocks as $block) { echo '<div>'; foreach ($block as $kicks) { echo $kicks->brand; } echo '</div>'; } 

Небольшое изменение в ответе AVD, чтобы убедиться, что нет пустого DIV, если массив пуст, или его счет является коэффициентом 4 …

 if($lastRec=count($user_kicks)){ echo '<div>'; $i=1; foreach( $users_kicks as $kicks ) { if( ($i % 4 == 0) && ($i<$lastRec) ) echo '</div><div>'; echo $kicks->brand; $i++; } echo '</div>'; }