Foreach 循环仅显示数组中的一个值
Foreach Loop Only Displaying One Value From Array
我已经尝试研究与我的问题类似的其他问题,但我还没有找到任何具体解决这个问题的方法。我正在使用 mysqli 选择数据并将其显示在 table 中。 table_yard
列可以有多个值,所以我分解了这些值并将它们存储为要循环的数组,然后将结果存储在变量 $yard_name
中。我稍后将此变量分配给我的 table 中的一行($get
正在存储 sql 查询):
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
foreach ($yards as $yard) {
$yard_name = $yard . ", ";
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . $yard_name . "</td>
</tr>";
问题是,如果该数组中有多个值,它只显示第一项。我 运行 在 $yards
上进行调试以查看它是否甚至获取了数组的所有值,它是,如下所示:
Array (
[0] => 711
[1] => 2793
[2] => 988
)
不过,<td>
单元格中显示的是:
711,
我要它显示的是:
711, 2793, 988
我确定这是菜鸟的错误,但我想不通。预先感谢您的帮助。
未经测试,但这应该有助于解决问题。在循环之前定义 $yard_name
,这样它就不会经常被覆盖
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
$yard_name = "";
foreach ($yards as $yard) {
$yard_name .= $yard . ", "; // Add to the string instead of overwriting
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . trim($yard_name, ",") . "</td>
</tr>";
}
我已经尝试研究与我的问题类似的其他问题,但我还没有找到任何具体解决这个问题的方法。我正在使用 mysqli 选择数据并将其显示在 table 中。 table_yard
列可以有多个值,所以我分解了这些值并将它们存储为要循环的数组,然后将结果存储在变量 $yard_name
中。我稍后将此变量分配给我的 table 中的一行($get
正在存储 sql 查询):
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
foreach ($yards as $yard) {
$yard_name = $yard . ", ";
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . $yard_name . "</td>
</tr>";
问题是,如果该数组中有多个值,它只显示第一项。我 运行 在 $yards
上进行调试以查看它是否甚至获取了数组的所有值,它是,如下所示:
Array (
[0] => 711
[1] => 2793
[2] => 988
)
不过,<td>
单元格中显示的是:
711,
我要它显示的是:
711, 2793, 988
我确定这是菜鸟的错误,但我想不通。预先感谢您的帮助。
未经测试,但这应该有助于解决问题。在循环之前定义 $yard_name
,这样它就不会经常被覆盖
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
$yard_name = "";
foreach ($yards as $yard) {
$yard_name .= $yard . ", "; // Add to the string instead of overwriting
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . trim($yard_name, ",") . "</td>
</tr>";
}