我有一个提供此数组的查询
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 } ?>
请帮我在这里只显示一张表。
答案 0 :(得分:4)
问题是你不了解foreach
的工作原理。它需要你的数组并在数组中的每个条目中运行foreach
内的代码。
使用数组结构,foreach
将一次一个地遍历数组$types
的每个元素。由于$types
中的元素本身就是数组(即您有一个多维数组),$row_types
将是一个包含键id
和name
的数组。由于我们只需要一个每个数组有一行的表,我们需要在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>
你的整个代码看起来如下所示,正如我在表格上面所说的那样,tr将在foreach循环之前启动。
<强>代码:强>
<table>
<?php
foreach()
{
}
?>
</table>