Php HTML_表返回不正确的输出

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

我试图使用这个包从多维数组$data生成一个表

这是$data的转储:

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()确实使我的代码更短、更简洁。谢谢