如何将数组数据填充到HTML表中

时间:2017-01-09 20:46:03

标签: php arrays

我正在尝试将数组填充到HTML表中,但我一直在努力 注意:未定义的偏移量

我做错了什么?

<?php
class Invoices{
    public $database;
    public $exec;

    public function __construct(){
        $this->database = new Dbase();
    }

    public function show(){
        $query="SELECT * FROM invoices;";
        $this->exec=$this->database->fetch($this->database->run($query));
        echo '<table class="table table-striped table-bordered"><thead>
                <tr>
                <th>ID</th>
                <th>Customer ID</th>
                <th>Products</th>
                <th>Total</th>
                <th>Status</th>
                <th></th>
                </tr>
                </thead>';
        for ($i=0; $i<count($this->exec, 0); $i++){
            echo '<tr>';
            for ($j=0; $j<5; $j++){
                echo '<td>'.$this->exec[$i][$j].'</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
    }
}
?>

以下是$ exec数组中var_dump()的结果。

var dump

2 个答案:

答案 0 :(得分:2)

如果使用foreach循环,则无需担心索引不正确。

在我看来,for循环通常更适合做特定次数的事情,如果你只是迭代数组中的每个项目,foreach通常更直接。

foreach ($this->exec as $invoice)
{
    echo '<tr>';
    foreach ($invoice as $column)
    {
        echo '<td>'.$column.'</td>';
    }
    echo '</tr>';
}

答案 1 :(得分:0)

硬编码数组长度很大,不是没有

    foreach($this->exec[$i]as $j)
    {
        echo '<td>'.$this->exec[$i][$j].'</td>';
    }

但如果你必须对计数进行编码,请确保你做对了。根据你的标记,它看起来像你;期待6个元素,而不是5个。