如何在php循环中每行显示两个表列

bra*_*rad 12 html php foreach loops html-table

我希望显示数据,在我的foreach期间每行两列.我希望我的结果如下所示:

 <table>
 <tr><td>VALUE1</td><td>VALUE2</td></tr>
 <tr><td>VALUE3</td><td>VALUE4</td></tr>
 <tr><td>VALUE5</td><td>VALUE6</td></tr>
 </table>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Ben*_*mes 41

您可以使用array_chunk()将数据数组拆分为较小的数组,在这种情况下,每行的长度为2.

<table>
<?php foreach (array_chunk($values, 2) as $row) { ?>
    <tr>
    <?php foreach ($row as $value) { ?>
        <td><?php echo htmlentities($value); ?></td>
    <?php } ?>
    </tr>
<?php } ?>
</table>
Run Code Online (Sandbox Code Playgroud)

请注意,如果您有一个奇数个值,这将只留下一个单元格的最后一行.如果要在必要时添加空单元格,可以检查$row外部单元格的长度foreach.


dus*_*oft 11

$i=0;
foreach ($x as $key=>$value)
  {
  if (fmod($i,2)) echo '<tr>';
  echo '<td>',$value,'</td>';
  if (fmod($i,2)) echo '</tr>';
  $i++;
  }
Run Code Online (Sandbox Code Playgroud)

这将每秒输出TR(行)

ps:我还没有测试过代码,所以也许你需要添加!在fmod之前签名,如果它在第一次迭代时没有输出TR,而是在开始时的第二次迭代中...

  • @FredStevens-Smith:不要说"不行",为什么不详细说明.为什么不起作用?你收到错误了吗?怎么可能更好? (3认同)