php - PHP 为 3 个数组的每个循环创建 3 个列表
问题描述
我正在尝试使用 HTML 和 PHP 创建一个表,该表在 HTML/PHP 表的每一列中显示不同的数组(数组最终将来自 DB 表)。有 3 列。
<table class="table-styling">
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
echo '<tr>'.
'<td>'.$value.'</td>';
}
$arr2 = array(5, 6, 7, 8);
foreach ($arr2 as $value2) {
echo '<td>'.$value2.'</td>';
}
$arr3 = array(9, 10, 11, 12);
foreach ($arr3 as $value3) {
echo '<td>'.$value3.'</td>'.'</tr>';
}
?>
</table>
CSS
.table-styling{
border-collapse: collapse;
width: 100%;
color: #eb4034;
font-family: monospace;
font-size: 15px;
text-align: left;
}
.table-styling th{
background-color: #eb4034;
color: white
}
当前结果
第 1 列 | 第 2 栏 | 第 3 栏 | |||
---|---|---|---|---|---|
1 | |||||
2 | |||||
3 | |||||
4 | 5 | 6 | 7 | 8 | 9 |
10 | |||||
11 | |||||
12 |
预期结果
第 1 列 | 第 2 栏 | 第 3 栏 |
---|---|---|
1 | 5 | 9 |
2 | 6 | 10 |
3 | 7 | 11 |
4 | 8 | 12 |
解决方案
问题不在于数据库。
您应该检查有关如何使用 for 循环的逻辑。
因为你脑海中使用 for 循环的逻辑是错误的。
请让我向你解释为什么。
在您错误结果的第四行是
4 -- 5,6,7,8 -- 9。
但是为什么呢?让我给你解释一下。
您的代码中有三个循环。
在第一个循环结束时,您的代码为 4。
在第二个循环中,您的代码为 5、6、7、8。
在第三个循环开始时,您的代码为 9。
然后 echo 完成第四行。
这就是第四行显示 4 5 6 7 8 9 的原因。
您想使用 3 个数字的 1 维 for 循环来显示 2 维表。
但这是你思维中的逻辑错误。
2 级 for 循环(不是 1 级 for 循环)如何回显表。
例如,您可能需要二维数组。
并执行如下代码。
$myArray = array(
array(1, 5, 9),
array(2, 6, 10),
array(3, 7, 11),
array(4, 8, 12),
);
$out = "<table>";
foreach($myArray as $row) {
$out .= "<tr>";
foreach ($row as $cell) {
$out .= "<td>" . $cell . "</td>";
}
$out .= "</tr>";
}
$out .= "</table>";
echo $out;
推荐阅读
- css - 如何使波浪下划线延伸覆盖Chrome中的所有字符
- numpy - Distributions.jl 不接受我的(非正定)协方差函数(而 numpy 接受)
- django - 当form.save()不返回对象时,如何在保存模型表单对象后从django FileField中获取多个文件
- javascript - 带回调的单元测试异步函数
- python-3.x - 当列表中的值大于 0 时,如何将一个数字添加到列表中的另一个数字?
- r - Mutate dataframe and carry out partial string match
- r - remove layers from ggplot chart with particular layers automatically
- jquery - SelectBoxIt 与 CSS 文件冲突
- python - 如何将自定义排序应用于多索引列
- join - Hive 表加入计数