Добрый день!
Подскажите как в цикле while обернуть каждые три блока в div с классом (например block) ?
/**
* @param string[] $blocks
* @param int $count
* @param string $class_name
*/
function wrap_blocks(array $blocks, int $count, string $class_name = 'block'): string
{
if (count($blocks) === 0) {
return '';
}
$res = "<div class=\"$class_name\">";
$i = 0;
while ($i < count($blocks)) {
$res .= $blocks[$i];
if (($i + 1) % $count === 0 && $i < count($blocks) - 1) {
$res .= "</div>\n<div class=\"$class_name\">";
}
$i++;
}
$res .= '</div>';
return $res;
}
// demo
echo wrap_blocks(['block1', 'block2', 'block3', 'block4', 'block5', 'block6', 'block7'], 3);