Foreach 循环 - 三列(动态)table 布局

Foreach loop - three columns(dynamic) table layout

我有以下代码,它将创建一个包含三列的 table。

<?php $t = array(' 1 ' , ' 2 ' ,' 3 ', ' 4 ' , ' 5 ');
$count = 0;
$col =3;
echo '<table><tr>';
foreach($t  AS $r){
    $count++;
    echo '<td> '.$r.' </td>';
    if($count == $col){
        echo '</tr><tr>';
        $count = 0;
    }
}
echo '</tr></table>';

?>

但我真正想要的是第一列在创建新列之前至少有 4 行,依此类推。最大列数为 3,每列至少应有 4 行。

你需要开始询问你的数组有多少个元素,比如说:

$elementsCount= count($t);

然后测试以确定您需要多少列:

if($elementsCount>8){
  $maxCols= 3;
}
elseif($elementsCount>4){
  $maxCols= 2;
}
else{
  $maxCols= 1;
}

现在您创建三个 foreach 循环,每种情况一个。

是否可以知道是否要均匀分布元素,只用一个循环而不是三个循环就可以解决问题。