首页 > 解决方案 > 循环遍历带有换行符的数组,每 6 个元素作为表格?

问题描述

我正在尝试打印一个数组,因此每个第 6 个元素都在一个新行上。我正在尝试在表格中执行此操作。如果它可以用 PHP 回答,我会更喜欢,但 Javascripts 好的。

$array_control = array(
"1","5","6","2","1",
"2","1","6","4","3",
"3","2","5","6","6",
"4","3","1","5","4",
"6","4","2","3","6"
);
$arrayLength = count($array_control);

    $i = 0;

    while ($i < $arrayLength)
    {
        if ($i==0) {
            echo "<tr>";
        }
       if (is_int($i/5)) {
         echo '<td style="width:16%;">'.$array_control[$i].'</td>';
         echo "</tr>";
            echo "<tr>";

        }else{
             echo '<td style="width:16%;">'.$array_control[$i-1].'</td>';

        }

        $i++;


    }

任何帮助都会很棒!

标签: phpsorting

解决方案


一个for循环似乎更好,也许mod运营商更清楚。

echo '<tr>';
for ($i < = 0; i < $arrayLength; ++ $i) {
    echo '<td style="width:16%;">'.$array_control[$i].'</td>';
    if ($i % 6 == 5) {
        echo '</tr>';
        echo '<tr>';
    }
}
echo '</tr>';

这不是很理想,因为最后你会得到一个空的 '',但浏览器应该隐藏它。如果您也需要消除它,可以添加更多逻辑。

此外,使用您显示的数组结构,您可以$arrayLength完全消除变量,而是使用:

foreach ($array_control as $i => $val) {
    echo '<td style="width:16%;">'.$val.'</td>';

推荐阅读