在修复 html 表上显示 php 数组,而不会影响行数


Display php array on a fix html table without affecting the number of rows

我仍在学习PHP的过程中,想就我的担忧寻求您的帮助。我已经知道如何将数组显示到 html 表中,我通常使用我的表单。然后突然间我遇到了这个问题,其中应该有一个固定行数的修复表(假设大约 5 行)。

现在,如果我显示来自特定用户的信息,并且该用户只有来自 mysql 的 2 行数据,那么我的 html 表上只会显示 2 行。

发生什么:

*****************
** A ** B ** C **
*****************
** 1 ** 2 ** 3 **
*****************
** 4 ** 5 ** 6 **
*****************

我想要什么作为输出:

*****************
** A ** B ** C **
*****************
** 1 ** 2 ** 3 **
*****************
** 4 ** 5 ** 6 **
*****************
**   **   **   **
*****************
**   **   **   **
*****************

有没有一种简洁的方法来编码这个。你的想法已经是一个很大的帮助;我不是在要求代码,但你可以以某种方式指导我在这里可以做什么,以实现我想要的输出。

谢谢。

您可以使用固定数字计算来维护第二个计数器。 在伪代码中,它可能如下所示:

$rowCount = 0;
while (getNextDataRow()) {
    printDataRow();
    $rowCount++;
}
while ($rowCount <= 5) {
    printEmptyRow();
    $rowCount++;
}

请注意,这将在需要时添加空行,但如果数据包含超过 5 行,则不会限制行数。 在这种情况下该怎么办取决于您。 数据查询可以有一个LIMIT来防止这种情况发生,第一个while循环可以检查$rowCount == 5并退出循环,等等。

使用带有 if 语句的 for 循环。像这样:

$myData = array(
    array('A', 'B', 'C'),
    array('1', '2', '3'),
    array('4', '5', '6')
);
for ($i = 0; $i < 5; $i++)
{
    echo '<tr>';
    if (isset($myData[$i]))
    {
        echo '<td>'.$myData[$i][0].'</td>';
        echo '<td>'.$myData[$i][1].'</td>';
        echo '<td>'.$myData[$i][2].'</td>';
    }
    else
    {
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
    }
    echo '</tr>';
}

你可以用空字符串填充数组,直到它的计数为 5:

$array = array(array(1,2,3),array(4,5,6));
for($i=0, $add = 5-count($array);$i<$add;$i++){
    $array[]=array('','','');
}
var_dump($array);

输出:

array (size=5)
  0 => 
    array (size=3)
      0 => int 1
      1 => int 2
      2 => int 3
  1 => 
    array (size=3)
      0 => int 4
      1 => int 5
      2 => int 6
  2 => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)
  3 => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)
  4 => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)