我仍在学习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> </td>';
echo '<td> </td>';
echo '<td> </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)