如何在php循环中每行显示两个表格列
Posted
技术标签:
【中文标题】如何在php循环中每行显示两个表格列【英文标题】:How to display two table columns per row in php loop 【发布时间】:2010-12-20 02:32:39 【问题描述】:我想在我的 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>
任何帮助将不胜感激。
【问题讨论】:
【参考方案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>
【讨论】:
应该 = if ($i%2 == 0) echo '这将为您提供出色的表格和 for 循环概念--
<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>
【讨论】:
我不认为这正是 OP 想要的...阅读问题。【参考方案3】:您可以使用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>
请注意,如果您有奇数个值,这将留下最后一行只有一个单元格。如果您想在必要时添加一个空单元格,您可以检查外部foreach
中$row
的长度。
【讨论】:
【参考方案4】:$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,而是在开始的第二次迭代时输出......
【讨论】:
谢谢,这很好用。是的,我必须先添加 !fmod。 @FredStevens-Smith:与其说“不起作用”,不如详细说明一下。为什么它不起作用?你收到错误了吗?怎样才能更好? 您的代码似乎包含错误;$i++
应该上移了一行。以上是关于如何在php循环中每行显示两个表格列的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Javascript 中循环遍历 HTML 表中的复选框行