我想在我的foreach中显示数据,每行两列。我想我的结果看起来像下面这样:如何在php循环中显示每行两个表列
<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>
任何帮助将不胜感激。
我想在我的foreach中显示数据,每行两列。我想我的结果看起来像下面这样:如何在php循环中显示每行两个表列
<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>
任何帮助将不胜感激。
$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:我没有测试的代码,所以也许你需要添加!如果它在第一次迭代时不输出TR,但在开始的第二次迭代时输入TR ...
可以使用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
的长度。
这将给你带来很大的表和循环concept--
<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想要的......阅读问题。 – BenjiWiebe 2013-01-05 18:08:07
<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'
谢谢你,这个伟大的工程。是的,我必须为第一个添加!fmod。 – brad 2009-11-24 23:53:06
不起作用... – 2012-05-18 17:54:13
@ FredStevens-Smith:不要说'不行',为什么不详细说明一下。为什么它不起作用?你收到错误了吗?它怎么能被改进? – TheCarver 2013-09-21 14:19:23