foreach在HTML中创建重复的表

时间:2016-10-13 08:11:33

标签: php html

我有一个提供此数组的查询

Array ( 
    [0] => Array ( 
        [id] => 1 
        [name] => name1 
    )

    [1] => Array ( 
        [id] => 2 
        [name] => name2 
    ) 

    [2] => Array ( 
        [id] => 3 
        [name] => name3 
    )
 )

当它返回到HTML页面并成为foreach时,它会将表复制到3个表中。

<?php foreach ($types AS $row_types) { ?>
<table class="table_style1">
    <tr>
        <th>Title</th>
        <th>Title2</th>
    </tr>
    <tr>
        <td><?php $row_types['name'][0]?></td>
        <td>data 1</td>
    </tr>
    <tr>
        <td><?php $row_types['name'][1]?></td>
        <td>data 2</td>
    </tr>
    <tr>
        <td><?php $row_types['name'][2]?></td>
        <td>data 3</td>
    </tr>
</table>
<?php } ?>

请帮我在这里只显示一张表。

3 个答案:

答案 0 :(得分:4)

问题是你不了解foreach的工作原理。它需要你的数组并在数组中的每个条目中运行foreach内的代码。

使用数组结构,foreach将一次一个地遍历数组$types的每个元素。由于$types中的元素本身就是数组(即您有一个多维数组),$row_types将是一个包含键idname的数组。由于我们只需要一个每个数组有一行的表,我们需要在foreach循环之外启动表及其标题。

<table class="table_style1">
    <tr>
        <th>Title</th>
        <th>Title2</th>
    </tr>

然后我们可以为我们每行输出foreach

<?php foreach ( $types as $row_types ) { ?>
    <tr>
        <td><?= $row_types['id'] ?></td>
        <td><?= $row_types['name'] ?></td>
    </tr>
<?php } ?>

如果您注意到我使用的是<?=标记,则这是<?php echo的快捷方式,因为目前您还没有回显出行中的内容,您可以使用</table> 标记。我只是把变量放在一起,并没有做任何事情。

最后我们可以关闭表格

<table class="table_style1">
    <tr>
        <th>Title</th>
        <th>Title2</th>
    </tr>
    <?php foreach ( $types as $row_types ) { ?>
    <tr>
        <td><?= $row_types['id'] ?></td>
        <td><?= $row_types['name'] ?></td>
    </tr>
    <?php } ?>
</table>

整个代码看起来像这样

{{1}}

答案 1 :(得分:2)

table标记和标题tr th放在循环外部。

$types = array ( 
            array ( 
                "id" => 1,
                "name" => "name1"
            ),
            array ( 
                "id" => 2,
                "name" => "name2"
            ),
            array ( 
                "id" => 3,
                "name" => "name3"
            )
        );
?>
<table class="table_style1">
    <tr>
        <th>Title</th>
        <th>Title2</th>
    </tr>
<?php 
foreach ($types AS $row_types) { ?>
    <tr>
        <td><?php echo$row_types['name'];?></td>
        <td>data <?php echo $row_types['id']?></td>
    </tr>
<?php }?>
</table>

答案 2 :(得分:0)

错误:您已使用该表重复内部 forach()循环,因此这是您脚本中的错误。

需要更正: <table><tr> 从外面开始结束循环{{1}你现在面对的。 to avoid the duplicates</tr>

因此我将为您提供以下示例:

示例:

</table>

解决方案:foreach在HTML中创建重复的表

你的整个代码看起来如下所示,正如我在表格上面所说的那样,tr将在foreach循环之前启动。

<强>代码:

<table>
<?php
foreach()
{
}
?>
</table>