将PHP数组填充到HTML表格中

3

将php数组填充到HTML表格中

我有一个php数组(比如,$rows2),它以键值对的形式给出以下输出。我正在尝试将这些数据格式化为HTML表格:

0 => Month:
1 => 07/2011,
2 => 7-8
3 => / 1432 A.H
4 =>  
5 => Location:
6 => Plainfield,
7 => NJ,
8 => USA
9 => Calculation Method:
10 => Value 10
11 =>  
12 => Juristic Method:
13 => Standard 

我尝试使用以下代码填充表格:
echo '<table border=1>';
while (list($key, $value) = each($rows2)) {

    echo $value2.$value;
        if($i%5 == 0){
            echo '<tr><td>'.$value2.'</td></tr>';

        }
        $value2='';
    $i++;
}
echo '</table>';

我得到了以下输出:
--------------------------------------------------------
Month:      |   07/2011     |   7-8     |   1432 A.H
--------------------------------------------------------
Location:   |   Plainfield  |   NJ      |   USA
--------------------------------------------------------
Calculation |   ValueX      |  Juristic |   ValueY
Method:     |               |  Method:  |
--------------------------------------------------------

我正在尝试将最后一行拆分成两行,并将第二行合并列以实现以下结果。
--------------------------------------------------------
Month:      |   07/2011     |   7-8     |   1432 A.H
--------------------------------------------------------
Location:   |   Plainfield  |   NJ      |   USA
--------------------------------------------------------
Calculation |           ValueX      
Method:     |           
--------------------------------------------------------
Juristic    |           ValueY
Method:     |               
--------------------------------------------------------

有人能帮忙吗?先谢谢了。


如果你的数组始终保持这种方式,最好直接将表格硬编码。然而,如果你的数据结构不是固定的,那么你如何知道何时需要结束一行?你有哪些细节?我的意思是,什么是指示特定值必须开始下一行的标志? - Aleks G
你好。这里有什么是动态的(会变化的)?显然,数据可以改变,但行数或列数也会改变吗?这会影响答案。因为如果数据总是那样的话,你可能就只需编写代码了。 - element119
你的数组结构有点混乱。通常不会将元数据(列标题等)放在数据所在的位置。为什么不先按照这样的方式排列数组,以便元数据表示为键呢?其次,使用循环创建表格是否必要?如果你已经知道它不会改变,我建议你使用表格模板来处理。 - Michael Ekoka
3个回答

3
如果以下条件成立:
1. 行数始终相同 2. 列数始终相同
那么最好的做法是将数组的部分直接插入表格中,如下所示:
<table>
<tr>
    <td><?= $array[0]?></td>
    <td><?= $array[1]?></td>
    <td><?= $array[2]?></td>
    <td><?= $array[3]?></td>
</tr>
<tr>
    <td><?= $array[9]?></td>
    <td colspan='3'><?= $array[10]?></td>
</tr>
<tr>
    <td><?= $array[12]?></td>
    <td colspan='3'><?= $array[13]?></td>
</tr>
</table>

3
<table>
<?php
foreach( $row in $rows2) { 
    echo '<tr>';
    echo '<td>' . $row[0] . '</td>';
    echo '<td>' . $row[1] . '</td>';
    echo '<td>' . $row[2] . '</td>';
    echo '<td>' . $row[4] . '</td>';
    echo '</tr><tr>';
    echo '<td>' . $row[5] . '</td>';
    echo '<td>' . $row[6] . '</td>';
    echo '<td>' . $row[7] . '</td>';
    echo '<td>' . $row[8] . '</td>';
    echo '</tr><tr>';
    echo '<td>' . $row[9] . '</td>';
    echo '<td colspan="3">' . $row[10] . '</td>';
    echo '</tr><tr>';
    echo '<td>' . $row[12] . '</td>';
    echo '<td colspan="3">' . $row[13] . '</td>';
    echo '</tr>';
} // end foreach
?>
</table>

1
我认为,如果您将HTML和PHP混合在一起,而不是像您现在这样尝试在循环中完成它,会更容易些。
echo "<table>
<tr>
    <td>{$arr[0]}</td>
    <td>{$arr[1]}</td>
    <td>{$arr[2]}</td>
    <td>{$arr[3]}</td>
</tr>
<tr>
    <td>{$arr[9]}</td>
    <td colspan='3'>{$arr[10]}</td>
</tr>
<tr>
    <td>{$arr[12]}</td>
    <td colspan='3'>{$arr[13]}</td>
</tr>
</table>";

如果你想要使用大括号({})语法,在PHP中需要确保它在带引号的echo语句内部。否则,这段代码将是无效的HTML。 - element119

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接