【问题标题】:HTML - formatting a vertical tableHTML - 格式化垂直表格
【发布时间】:2017-07-05 07:02:14
【问题描述】:

我有一张如下所示的表格:

HEADER1: data1
HEADER2: data2
HEADER3: data3
HEADER4: data4
HEADER5: data5
HEADER6: data6
HEADER7: data7
HEADER8: data8

等等。我想设置一个特定的“阈值”,比如 4,之后数据将切换为如下所示(这样用户不必向下滚动太多):

HEADER1: data1      HEADER5: data5
HEADER2: data2      HEADER6: data6
HEADER3: data3      HEADER7: data7
HEADER4: data4      HEADER8: data8

我如何以最简单的方式做这样的事情?

这是我用来生成此表的当前 PHP 代码:

foreach($row as $key=>$value) {
    echo '<tr>';
    echo '<th>', $headerindeces[$i], "</th>";
    echo '<td>',$value,'</td>';
    echo '</tr>';
    $i++;
}

【问题讨论】:

    标签: php html css user-interface html-table


    【解决方案1】:

    一个非常简单的方法是在每次达到阈值时构建另一个表(假设您可以硬编码阈值)。您可以使用modulus division

    $threshold = 4;
    $i = 0;
    foreach ($row as $key => $value) {
        if (($i+1) % $threshold == 0) {
            echo '</table><table>';
        }
        echo '<tr>';
        echo '<th>', $headerindeces[$i], "</th>";
        echo '<td>', $value, '</td>';
        echo '</tr>';
        $i++;
    }
    

    然后,只需使用 CSS 将两个表格彼此相邻显示。

    【讨论】:

    • 错字:回声'';两个表结束标记
    • 谢谢,这行得通。只是另一个更正:应该将 if 条件更改为 (($i+1) % $threshold == 0 || $i == 0) 否则在达到阈值之前不会创建第一个表。或者,只需 ($i % $threshold == 0)。
    • 好吧,我假设之前的代码中已经输出了初始表。在这种情况下` || $i == 0` 会导致一个空的&lt;table&gt;&lt;/table&gt;...