【发布时间】:2023-03-30 04:07:01
【问题描述】:
我有一个名为 $data 的数组,我想显示一个两列 html 表格,
-
tableHeader在左侧列中。 -
tableData在右侧列中。
print_r($data) 显示以下内容
Array
(
[0] => Array
(
[tableHeader] => ID
[tableData] => 104
)
[1] => Array
(
[tableHeader] => Member Number
[tableData] => not available
)
[2] => Array
(
[tableHeader] => First Name
[tableData] => Peter
)
[3] => Array
(
[tableHeader] => Last Name
[tableData] => Keys
)
[4] => Array
(
[tableHeader] => Address
[tableData] => 17 main road
)
[5] => Array
(
[tableHeader] => Email
[tableData] => P3TER@HOTMAIL.CO.UK
)
[6] => Array
(
[tableHeader] => Post Code
[tableData] => LDN 1
)
[7] => Array
(
[tableHeader] => City
[tableData] => London
)
[8] => Array
(
[tableHeader] => Year Graduated
[tableData] => 0000-00-00
)
[9] => Array
(
[tableHeader] => Subject Studied
[tableData] => Comp
)
[10] => Array
(
[tableHeader] => Telephone Number
[tableData] => 123123
)
)
我尝试了以下foreach 循环,但我一直收到错误消息;
消息:未定义变量:值
<table class="table">
<thead>
<? foreach ($data as $value): ?>
<tr>
<th scope="col"><?php echo $value['tableHeader']; ?></th>
</tr>
<? endforeach; ?>
</thead>
<tbody>
<? foreach ($data as $value): ?>
<tr>
<th scope="col"><?php echo $value['tableData']; ?></th>
</tr>
<? endforeach; ?>
</tbody>
</table>
我做错了什么?
【问题讨论】:
-
不可能!!!!!
-
首先我建议不要使用 SHORT PHP () 标签。其次,使用输出 PHP 标记 (=) 增加了可读性。如果你想让tableHeader在左边一列,tableData在右边一列,为什么不直接输出
.=$value['tableHeader']?> =$value['tableData']?> -
尝试用
<?php foreach替换<? foreach(除非您实际上启用了短标签)...我怀疑如果您查看源代码,您实际上会在代码中看到<? foreach-而<?php echo $value正在 被解释器接收,因此抱怨$value尚未定义。 -
感谢 cmets 伙计们,现在一切都变得更有意义了!如果有人想添加答案,我可以接受。
-
您想为每个子数组创建一个单独的表吗?如果没有,那么您将不会得到一个 2 列表,因为有多个标题名称。如果你想要一个表,那么每个
tableHeader都会有一个列。或者,例如,表格列标题用于“headerName”和“dataValue”,然后在每一行中,您可以在子数组中插入每个项目的值。
标签: php arrays loops multidimensional-array foreach