我正在尝试使用 PHP/HTML 打印表格。存储在数组中的数据如下:
Array ( [id] => 1 [first_name] => mike [last_name] => lastname )
我的代码如下。它运行并且没有错误,但输出不符合预期。这是 PHP/HTML 代码:
<table>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<?php foreach ($res as $item): ?>
<tr>
<td><?php echo $item['id'] ?></td>
<td><?php echo $item['first_name'] ?></td>
<td><?php echo $item['last_name'] ?></td>
</tr>
<?php endforeach; ?>
</table>
我得到的结果是项目的第一个字符:
1 2 3
1 1 1
m m m
l l l
不确定我做错了什么?我真的很感激解释。
更新:
没有错误的 PHP 代码:
<?php
foreach ($result as $row)
{
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['first_name'] . '</td>';
echo '<td>' . $row['last_name'] . '</td>';
echo '</tr>';
}
?>
这是我的数组,其中只有一个“行”:
使用 < PRE > 标签包装的 print_r(\(result) 输出 \)result 变量
Array
(
[id] => 3
[first_name] => Jim
[last_name] => Dude
)
这是我得到的结果:
实际表结果:
ID First Name Last Name
3 3 3
J J J
D D D
但是,如果我在数组中有 0 个或超过 1 个(意味着 2 个或更多),它就可以完美地工作。当我在数组中只有一“行”元素时,它就不起作用了。例如这个数组,完美地工作:
Array
(
[0] => Array
(
[id] => 3
[first_name] => Jim
[last_name] => Dude
)
[1] => Array
(
[id] => 4
[first_name] => John
[last_name] => Dude2
)
)
我得到这个结果:
ID First Name Last Name
3 Jim Dude
4 John Dude2
我不太确定我做错了什么。这个想法是不知道表中有多少项,将其读入 $result
变量,然后使用此变量打印 HTML 表中的所有元素。表格可以包含 O 个元素、1 行元素、1 行或多行元素。
原文由 user1930845 发布,翻译遵循 CC BY-SA 4.0 许可协议
不要删除您的 foreach 循环。在没有看到构建数组的代码的情况下,我猜你正在这样做:
实际上你可能想做的是:
方括号 [ ] 将所有值的数组添加到数组中。通过这种方式,您可以将每个作为值的集合而不是单个值进行循环。