Se me ocurren 2 formas posibles de resolverlo:
Código PHP:
Ver original<?php
// Parametros.
$data = [1,2,3,4,5,6,7,8];
$cols = 3;
// Procedimiento.
$col = 0;
foreach($data as $nro) {
if($col === 3) {
echo "</div>";
$col = 0;
}
if($col === 0)
echo "<div class=\"row-$cols-cols\">";
echo "<div class=\"col-$col\">$nro</div>";
$col++;
}
while($col !== 3) {
echo "<div class=\"col-$col\">-</div>";
$col++;
}
echo "</div>";
?>
y
Código PHP:
Ver original<?php
// Parametros.
$data = [1,2,3,4,5,6,7,8];
$cols = 3;
// Procedimiento.
$cant = $cant + ($cant % $cols) - 1;
for($col=0; $col<$cant; $col++) {
if($col % 3 === 0)
echo "<div class=\"row-$cols-cols\">";
echo "<div class=\"col-$col\">$nro</div>";
if(($col+1) % 3 === 0)
echo "</div>";
}
?>