如何使用嵌套循环生成HTML表?

时间:2015-04-22 21:08:26

标签: php foreach html-table

我的表格应如下所示:

http://hell-rider.de/Fotos/img/beispiel-1.JPG

我有以下PHP脚本:

foreach ($xml->result->rowset->row as $row){
    if($row{'refTypeID'} == 42){
        echo '<tr>';
        echo "<th>";
        echo $row{'date'};
        echo "</th>";
        echo "<th>";
        echo '' . $row{'ownerName1'} .'';
        echo "</th>";
        echo "<th>";
        foreach ($allgemeinxml->result->rowset->row as $type){
            echo '' . $type{'typeName'} .'';
        }
        echo "</th>";
        echo "<th>";
        echo '<p class="minus">' . $row{'amount'} .' ISK</p>';
        echo "</th>";
        echo "<th>";
        echo '<p class="kontostand">' . $row{'balance'} . ' ISK</p>';
        echo "</th>";
        echo '</tr>';
    }
}
echo "</table>";

我的脚本的实际输出如下:

http://hell-rider.de/Fotos/img/beispiel2.JPG

如何更改我的脚本以正确填充第三列(而不是使用 MetallurgyTradeLaboratory OperationLaboratory OperationLaboratory OperationResearchCyber​​netics )?

1 个答案:

答案 0 :(得分:0)

<th>标记用于标题单元格,您应该使用<td>个数据单元格。

$types = array();

foreach ($allgemeinxml->result->rowset->row as $type){
    $types[] = $type{'typeName'};
}

$type_index = 0;

foreach ($xml->result->rowset->row as $row){
    if($row{'refTypeID'} == 42){
        echo '<tr>';
        echo "<td>";
        echo $row{'date'};
        echo "</td>";
        echo "<td>";
        echo '' . $row{'ownerName1'} .'';
        echo "</td>";
        echo "<td>";
        echo $types[$type_index];
        echo "</td>";
        echo "<td>";
        echo '<p class="minus">' . $row{'amount'} .' ISK</p>';
        echo "</td>";
        echo "<td>";
        echo '<p class="kontostand">' . $row{'balance'} . ' ISK</p>';
        echo "</td>";
        echo '</tr>';
    }
    $type_index++;
}
echo "</table>";

我不确切知道if($row{'refTypeID'} == 42){的用途是什么,所以你要么在我把它放在上面的地方$type_index++;,要么在结束括号}之上。为了使其正常运行,$allgemeinxml->result->rowset->row$xml->result->rowset->row需要相同数量的元素。