Php HTML_表返回不正确的输出
我试图使用这个包从多维数组$data生成一个表 这是$data的转储:Php HTML_表返回不正确的输出,php,pear,html-table,Php,Pear,Html Table,我试图使用这个包从多维数组$data生成一个表 这是$data的转储: Array ( [0] => Array ( [0] => Office [1] => Canvasser [2] => Fundraising Hrs [3] => PAC/Hr no PFU [4] => PAC $ no PFU
Array
(
[0] => Array
(
[0] => Office
[1] => Canvasser
[2] => Fundraising Hrs
[3] => PAC/Hr no PFU
[4] => PAC $ no PFU
)
[1] => Array
(
[0] => TBS1
[1] => Vatcher, Georgia
[2] => 29
[3] => 8.295
[4] => 481
)
)
编辑:第一个数组是my THEAD标记的行,任何其他数组都将是TBODY标记中的行
这是我的代码:
$data = $worksheet->toArray('', true, false, false); // PHPExcel
// build table
$table = new HTML_Table(array('class' => 'dt'), 0, true);
$thead =& $table->getHeader();
$tbody =& $table->getBody();
// loop through rows
for ($r = 0, $lr = count($data); $r < $lr; $r++) {
// loop through columns
for ($c = 0, $lc = count($data[$r]); $c < $lc; $c++) {
if ($r == 0) {
$thead->setCellContents($r, $c, $data[$r][$c]);
} else {
$tbody->setCellContents($r, $c, $data[$r][$c]);
}
}
}
// output html
echo $table->toHtml();
$data=$worksheet->toArray('',真,假,假);//PHPExcel
//生成表
$table=新的HTML_表(数组('class'=>'dt'),0,true);
$thead=&$table->getHeader();
$tbody=&$table->getBody();
//循环行
对于($r=0,$lr=count($data);$r<$lr;$r++){
//循环通过列
对于($c=0,$lc=count($data[$r]);$c<$lc;$c++){
如果($r==0){
$thead->setCellContents($r,$c,$data[$r][$c]);
}否则{
$tbody->setCellContents($r,$c,$data[$r][$c]);
}
}
}
//输出html
echo$table->toHtml();
当它输出HTML时,它返回一个表,其中有一个额外的行,TBODY标记中有空白单元格。我似乎不明白它为什么这样做。获得正确的输出对我来说很重要,因为我正在将此输出发送回JavaScript文件进行进一步处理
我怎样才能解决这个问题 您需要为tbody中的行重置计数器 第一个主体单元获取坐标
(1,0)
,但应具有(0,0)
-行位置从0开始,而不是从1开始。因此,您隐式地告诉HTML\u Table
在第一行之前添加一个清晰的行
要修复它,请在
else
块中使用$r-1
而不是$r
。并了解foreach()
您需要重置tbody中该行的计数器
第一个主体单元获取坐标(1,0)
,但应具有(0,0)
-行位置从0开始,而不是从1开始。因此,您隐式地告诉HTML\u Table
在第一行之前添加一个清晰的行
要修复它,请在
else
块中使用$r-1
而不是$r
。了解foreach()
啊,这很有意义。您建议使用foreach()确实使我的代码更短、更简洁。谢谢啊,这很有道理。您建议使用foreach()确实使我的代码更短、更简洁。谢谢