首页 > 解决方案 > 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

标签: phphtml

解决方案


问题不在于数据库。
您应该检查有关如何使用 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;


推荐阅读