PHP动态回显查询结果列,而无需使用列名

时间:2018-09-27 10:05:19

标签: php arrays postgresql loops

我正在尝试将查询结果输出到<table>中,但我陷入了困境。

我知道我可以做到:

while ($row = pg_fetch_assoc($query)) {
       echo "<td class='cell100'>" . $row['name'] . "</td>";
       echo "<td class='cell100'>" . $row['dynamic_col_1'] . "</td>";
       echo "<td class='cell100'>" . $row['dynamic_col_2'] . "</td>";
       echo "<td class='cell100'>" . $row['dynamic_col_3'] . "</td>";
       echo "<td class='cell100'>" . $row['dynamic_col_4'] . "</td>";
       echo "<td class='cell100'>" . $row['dynamic_col_5'] . "</td>";
}

问题取决于用户的设置-'dynamic_col_1''dynamic_col_X'不一定会以该顺序出现,也不一定具有该特定名称。

我想保持用户定义的顺序和动态列名与查询中已经排序的一样。

在不使用列名的情况下如何实现-$row['dynamic_col_X']看到它从一个用户更改为另一个用户?有没有使用数组键或类似方法的方法?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用foreach,遍历各列,然后进行调整以适合您的工作:

foreach ($row as $column => $value) {
    echo $column . ' ' . $value;
}

答案 1 :(得分:0)

您可以implode $row

while ($row = pg_fetch_assoc($query)) {
    echo '<td class="cell100">', implode('</td><td class="cell100">', $row), '</td>';
}
  

以相同顺序返回所有数组元素的字符串表示形式,其中每个元素之间都有粘合字符串。