使用PHP foreach创建HTML表

时间:2014-10-18 19:33:29

标签: php html foreach

当我尝试创建HTML表时,我的表格混乱了。这是我的代码。

$data['items'] = array(
array(
    'des' => 'item #1', 
    'price' => 10, 
    'o' => 2, 
    't' => 15, 
    ), 
array(
    'des' => 'item #3', 
    'price' => 11, 
    'o' => 4, 
    't' => 10, 
    ), 
);

这是我继续创建表格。但这似乎完全错了。特别是在tr和td中检查foreach中的条件......

<table><thead align="left" style="display: table-header-group"><tr><th>
    <table><tr> <td>col 1 </td>
                <td>col 2 </td>
                <td>col 3 </td>
                <td>col 4 </td>
                <td>col 5 </td>

    </tr></table>
</th></tr></thead>
<tbody>
<?php foreach ($data['items'] as $rows) :?>
    <tr class="item_row">
            <?php 
            $total = 0;
            foreach ($rows as $key => $value) : ?>
            <td><?php echo $key+1 ?></td>
            <td> <?php echo $value['description'] ?></td>
            <td> <?php echo $value['price'] ?></td>
            <td> <?php echo $value['o'] ?></td>
            <td> <?php echo $value['t'] ?></td>
            <?php endforeach;?>
    </tr>
<?php endforeach;?>
</tbody>
</table>

我面临的问题首先是条件不正确,所以在每一行它只是每次都引用第一个值。 其次,桌子明显破了。  需要一些帮助来解决这个问题。

1 个答案:

答案 0 :(得分:2)

你有一个循环太多,内部循环不是必需的,并导致警告,因为$value不是一个数组。

除此之外,你已经弄乱了你的桌面,添加了另一张桌子和th标签,而这些标签并不是必需的。

您需要以下内容:

<table>
  <thead align="left" style="display: table-header-group">
  <tr>
     <th>col 1 </th>
     <th>col 2 </th>
     <th>col 3 </th>
     <th>col 4 </th>
     <th>col 5 </th>
  </tr>
  </thead>
<tbody>
<?php 
$total = 0;
foreach ($data['items'] as $rows) :?>
  <tr class="item_row">
        <td><?php echo ++$total; ?></td>
        <td> <?php echo $rows['description']; ?></td>
        <td> <?php echo $rows['price']; ?></td>
        <td> <?php echo $rows['o']; ?></td>
        <td> <?php echo $rows['t']; ?></td>
  </tr>
</tbody>
</table>
<?php endforeach;?>