【问题标题】:Insert array data into html table column using php使用php将数组数据插入html表列
【发布时间】:2021-04-11 19:39:55
【问题描述】:

有很多类似目的的问题,但我找不到任何解决方案。我希望有人能指出我正确的方向。我正在尝试将几个数组插入一列,但只有数组值插入每列,而不是索引(索引是必需的部件号)。这是我的代码:

        $Asset['MAINS_RD'] = 'main water supply';
        $Asset['OTHER_CB'] = 'Other Water Supplies';
        $Asset['CWST_CB'] = 'Number of Cold Water Tanks';
        $Number['MAINS_NUM'] = '1';
        $Number['OTHER_NUM'] = '1';
        $Number['CWST_NUM'] = '5';
        $serviceRegister = [
            'assets' => $Asset,
            'number_present' => $Number
        ];
        echo '<table>';
        foreach($serviceRegister as $source){
            foreach($source as $rows=>$row){
                echo '<tr>';
                    echo "<td>" .$rows."</td>";
                    echo "<td>" .$row."</td>";
                echo '</tr>';

            }
        }
        echo '</table>';

结果是:

MAINS_RD    main water supply
OTHER_CB    Other Water Supplies
CWST_CB     Number of Cold Water Tanks
MAINS_NUM   1
OTHER_NUM   1
CWST_NUM    5

而我的预期结果是:

main water supply             1
Other Water Supplies          1
Number of Cold Water Tanks    5

我找到的大多数解决方案都是数组输入行,但我找不到一个 php 解决方案来做我想做的事情。请帮忙。提前致谢。

【问题讨论】:

  • 您应该使键匹配。当前一个数组中的索引与另一个数组中的索引之间没有关系。 $Asset['MAINS'] = 'main water supply'$Number['MAINS'] = '1'; 然后只需遍历 1 并使用键从另一个中提取值
  • 感谢您的回复。我无法更改索引。它是来自数据库的固定值。我无法向您展示确切的代码,但它非常相似。必须是 MAINS_CB 和 MAINS_NUM,不能更改。
  • MAINS_RD = MAINS_NUM , MAINS_NUM=OTHER_NUM 使用 PHP 尽可能匹配结果

标签: php html arrays


【解决方案1】:

我发现您的要求确实没有吸引力且令人困惑。我不会将这种 XY 问题引入专业脚本中。我不明白你的动机,但这是重新分配/对齐两个数组的键并仅使用一个循环进行迭代而不完全重构代码的一种方法。

这假设两个数组的元素长度相等。 我不知道您的输入数据会如何变化,而且我不太相信这个解决方案会随着时间的推移而成立。

代码:(Demo)

$Asset['MAINS_RD'] = 'main water supply';
$Asset['OTHER_CB'] = 'Other Water Supplies';
$Asset['CWST_CB'] = 'Number of Cold Water Tanks';
$Number['MAINS_NUM'] = '1';
$Number['OTHER_NUM'] = '1';
$Number['CWST_NUM'] = '5';

$Number = array_combine(array_keys($Asset), $Number);

echo '<table>';
foreach ($Asset as $column => $value) {
    echo '<tr>';
        echo "<td>" . $value . "</td>";
        echo "<td>" . $Number[$column] . "</td>";
    echo '</tr>';
}
echo '</table>';

输出:

main water supply           1
Other Water Supplies        1
Number of Cold Water Tanks  5

【讨论】:

  • 感谢您的回复。我实际上在做与您的代码相同的事情并产生相同的结果。有人给了我这些数组,只是要求我创建一个表格放入报告中。他的界面的后端是在资产数据上有一个复选框,只有当它被选中时才接收输入的数字。这就是为什么他只有一个数据的索引。这就是数组看起来是这样的原因。
  • 如果我解决了您的问题,您可以接受我的回答。
猜你喜欢
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 2012-12-15
  • 2015-02-27
相关资源
最近更新 更多