表格,分3列输入

k_badboy 2009-08-18 09:07:30
// 你们也是这样做的吗?

$col = 3;

$i=0;
foreach($arr as $a)
{
if ($i%3==0) echo "<tr>";
echo "<td>" . $a "</td>";
if ($i%3==0) echo "</tr>";
$i++;
}
...全文
43 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxtrayn 2009-08-18

<style>
div{
margin:0;
padding:0;
}
.box{
width:300px;
}
.box div{
width:100px;
float:left;
}
</style>
<?php
$arr = array(2,3,5,6,5,5,5,6,6,55,6,6,5,5,55,32025);
echo '<div class="box"><div>'.implode('</div><div>',$arr).'</div></div>';
回复
lxtrayn 2009-08-18
CSS来,这种情况用table就是累赘
回复
lin_wen_jun 2009-08-18
上面可以省去设置全局变量的麻烦,不知道关联数组起作用不,楼主自己测试下。
回复
lin_wen_jun 2009-08-18
用array_slice比较简单一些,而且楼主的条件判断好像有问题

$arr = array(2,3,5,6,5,5,5,6,6,55,6,6,5,5,55,32025);

echo "<table border=1>";
for ($i=0; $i<ceil(count($arr)/3); $i++){
$result = array_slice($arr, $i*3, 3);
echo "<tr>";
foreach($result as $r){
echo "<td>$r</td>";
}
echo "</tr>";
}
echo "</table>";
回复
CunningBoy 2009-08-18
晕倒,自己脑袋不清楚,也写错了,修改一下:
$col = 3; 
$i=0;
foreach($arr as $a)
{
if ($i%$col==0) echo " <tr>";
echo " <td>" . $a " </td>";
if ($i%$col==$col - 1) echo " </tr>";
$i++;
}
回复
fenyao 2009-08-18
回复
CunningBoy 2009-08-18
你的逻辑不对吧,应该是:
$col = 3; 
$i=0;
$isEnd=0;
foreach($arr as $a)
{
if ($i%$col==0) {
echo " <tr>";
$isEnd = 1;
}
echo " <td>" . $a " </td>";

if ($i%$col==0 && $isEnd == 1){
$isEnd = 0;
echo " </tr>";
}
$i++;
}
回复
江南昆虫 2009-08-18
$arr = array(1,2,3,4,5,6,7,8,9,10);
$col = 3;
$i=0;
echo("<table border=1><tr>");
foreach($arr as $a)
{
if ($i%3==0&&$i>0) echo "</tr><tr>";
echo " <td>$a</td>";
$i++;
}
if ($i%3>0) echo str_repeat("<td> </td>",3-$i%3);
echo("</tr></table>");
回复
江南昆虫 2009-08-18
echo str_repeat("<td> </td>",3-$i%3);
回复
k_badboy 2009-08-18
谢谢大家的热心帮助。其实我也只是想确认一下有没有更简洁方便的方法。(我的代码本身也有问题的)
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告