2014-10-18 136 views
-1

当我试图创建HTML表格时,我的表格被搞乱了。这是我的代码。使用PHP 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> 

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

+2

“需要一些帮助来解决这个问题”什么问题? – PeeHaa 2014-10-18 19:35:04

+0

这个问题为什么downvote?说明 – oxvoxic 2014-10-18 19:59:08

回答

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;?>