仅使用PHP从值数组创建表

时间:2018-10-30 16:43:18

标签: php html

我必须使用TCPDF打印表格,以便使用PHP从一系列内容中创建PDF。

在我的示例中,我将使用7个条目,但可以更多或更少。

$array = array(
 0 => "[ ] Option 1",
 1 => "[x] Option 2",
 2 => "[ ] Option 3",
 3 => "[ ] Option 4",
 4 => "[x] Option 5",
 5 => "[ ] Option 6",
 6 => "[ ] Option 7",
 ...
);

我的表布局是动态的:我可以设置列数以进行显示($num_cols可以是1、2、3或4列)

基于$ num_cols,我必须在每个TD单元中拆分数组的内容。

因此,如果我设置$num_cols = 4,则需要显示类似的内容:

<table>
  <tr>
    <td>[ ] Option 1</td>
    <td>[x] Option 2</td>
    <td>[ ] Option 3</td>
    <td>[ ] Option 4</td>
  </tr>
  <tr>
    <td>[x] Option 5</td>
    <td>[ ] Option 6</td>
    <td>[ ] Option 7</td>
    <td></td>
  </tr>
</table>

我试图提出一些想法,但是在这个例子中我只能得到一行。我不知道如何创建外部循环:

echo "<table>";
echo "<tr>";

for ( $i = 0; $i < $num_cols; $i++ ) {

 echo "<td>";
 if ( isset($array[$i]) {echo $array[$i];} else {}
 echo "</td>";

}
echo "</tr>";
echo "</table>";

2 个答案:

答案 0 :(得分:4)

array-chunk将为您提供帮助:

<?php
$num_cols = 4;
$array = [1,2,3,4,5,6,7,8];

echo "<table>";
foreach (array_chunk($array, $num_cols) as $chunk) {
    echo "<tr>";
    foreach ($chunk as $item) {
        echo "<td>";
        echo $item;
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>";

,您可以从php中使用其他一些炫酷的东西:)

<?php
$num_cols = 4;
$array = [1,2,3,4,5,6,7,8];

echo "<table><tr><td>" .
    implode("</td></tr><tr><td>",
        array_map(function(array $part) {
            return implode('</td><td>', $part);
        }, array_chunk($array, $num_cols))
    )
. "</td></tr></table>";

答案 1 :(得分:2)

userInput