从数组填充PHP表

时间:2018-07-20 03:21:43

标签: php loops html-table

我很难正确地将数据显示到<td>列中。我有表头和第一表列正常工作。我似乎无法全神贯注于如何正确显示其他数据。

2 个答案:

答案 0 :(得分:0)

据我所知,这就是您填充简单的2x2数组的方式

foreach($rows as $row){
    echo '<tr>';

    // create first td (column name)
    echo '<td>';
    echo $month[$row];
    echo '</td>';

    // create the rest td (data value)
    foreach($columns as $column){
        echo '<td>';
        echo $data[$row][$column];
        echo '</td'>; 
    }
    echo '</tr>';
}

您的行将作为列的城市名称和月份名称

所以我的解决办法

//start table
echo '<table>';

//first row
echo '<tr>';
    //first header
    echo '<th> Month </th>';
    //rest of headers
    for ($i = 0; $i < 4; $i++) {
         echo  '<th>' .$data['series'][$i]['name']. '</th>'; 
    }
echo '</tr>';

//rest of rows 
for ($x = 0; $x < 12; $x++){
echo '<tr>';
    //first column
    echo '</td>';
    echo $data['categories'][$x];
    echo '</td>';

    //rest of columns
    for ($i = 0; $i < 4; $i++) {
        echo '<td>';
        echo $data['series'][$i]['data'][$x];
        echo('</td>');
    }
    echo '</tr>';
}
echo '</table>';

答案 1 :(得分:0)

您在语法上有很多错误。回声不需要括号。每个单元格都需要一个td标签。

使用的数组具有哪种格式也不清楚。取决于解决方案可能会出来。

仍然,这是一个建议。您可能需要根据阵列的组织对其进行修改。

<?php
//get json data
$data = json_decode($output, true);

//start table
echo '<table><tr><th> Month </th>';
//table headers
for ($i = 0; $i < 4; $i++)
{
    echo  '<th>' . $data['series'][$i]['name'] . '</th>';
}
echo '</tr>';

//column of months
$number = 0;
foreach ($data['categories'] as $value) 
{
    foreach($data['series'] as $inst)
    {
        $month_data = $month_data . "<td>" . $inst['data'][$number] . "</td>";
    };
    echo "<tr><td>$value</td>" . $month_data . "</tr>";
    $number++;

    unset($month_data);
};
echo '</table>';
?>

我称为$ month_data的部分将根据数组的组织方式而变化。要查看其组织方式,请使用以下代码:

<?php
echo '<pre>';
print_r($data);
echo '</pre>';
?>