【问题标题】:PHP Multidimensional Array to Two Column HTML TablePHP多维数组到两列HTML表
【发布时间】: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']?> .
  • 尝试用&lt;?php foreach 替换&lt;? foreach(除非您实际上启用了短标签)...我怀疑如果您查看源代码,您实际上会在代码中看到&lt;? foreach -而 &lt;?php echo $value 正在 被解释器接收,因此抱怨 $value 尚未定义。
  • 感谢 cmets 伙计们,现在一切都变得更有意义了!如果有人想添加答案,我可以接受。
  • 您想为每个子数组创建一个单独的表吗?如果没有,那么您将不会得到一个 2 列表,因为有多个标题名称。如果你想要一个表,那么每个tableHeader 都会有一个列。或者,例如,表格列标题用于“headerName”和“dataValue”,然后在每一行中,您可以在子数组中插入每个项目的值。

标签: php arrays loops multidimensional-array foreach


【解决方案1】:

看起来短标签不起作用,因为执行foreach循环内的php代码时,它无法识别$value变量,因为它从未被php解析过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2019-12-14
    • 1970-01-01
    • 2011-01-28
    • 2014-05-17
    • 2014-09-12
    • 2021-03-21
    相关资源
    最近更新 更多