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

时间:2009-11-24 23:34:21

标签: php html loops foreach 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>

非常感谢任何帮助。

4 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分: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++;
  }

这将每次输出TR(行)

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

答案 2 :(得分:1)

这会给你很好的表和循环概念 -

<table border="1" cellspacing="0" cellpadding="2">

<?php

     for($x=1; $x<=20; $x++)
        {
         echo "<tr>";
        for($y=1; $y<=20; $y++)
           {
          echo "<td>";
          echo $x*$y;
          echo "</td>"; 
           }
         echo "</tr>";
        }
?>
</table>

答案 3 :(得分:-1)

<table>
<?php
   $i=0;
   foreach ($x as $key=>$value)
   {
      if (!$i%2) echo '<tr>';
      echo '<td>',$value,'</td>';
      if ($i%2) echo '</tr>';
      $i++;
   }
?>
</table>