使用循环显示默认表中的数据数组

时间:2016-10-27 16:19:06

标签: php

我有1个数组数据也可能更多,并希望将它呈现在表上,我试图将默认表格设为5列,但是当我尝试相同的结果时,5列所有数据。应该有3列2列是空的,我的脚本中缺少什么?

这个myscript

<?php
$no = 1;
for($x=1; $x<=5; $x++) {
    foreach ($mydata as $row) {
        echo '<tr>';
        echo '<td>'.$no.'</td>';
        echo '<td>'.$row->id.'</td>';
        echo '<td>'.$row->name.'</td>';
        echo '<td>'.$row->class.'</td>';
        echo '</tr>';
        $no++;
    }
}
?>

脚本的结果

NO  | ID  | NAME | ClASS |
____|____ |______|_______|
 1  | 001 | Paul |    x  |
 2  | 001 | Paul |    x  |
 3  | 001 | Paul |    x  |
 4  | 001 | Paul |    x  |
 5  | 001 | Paul |    x  |

我期待

NO  | ID  | NAME | ClASS |
____|____ |______|_______|
 1  | 001 | Paul |   x   |
 2  |     |      |       |
 3  |     |      |       |
 4  |     |      |       |
 5  |     |      |       |

2 个答案:

答案 0 :(得分:1)

试试这个:

<?php
$no = 1;
for ($x=1; $x <= 5; $x++) {
    if (isset($mydata[$x-1])) {
        $row = $mydata[$x-1];
        echo '<tr>';
        echo '<td>'.$no.'</td>';
        echo '<td>'.$row->id.'</td>';
        echo '<td>'.$row->name.'</td>';
        echo '<td>'.$row->class.'</td>';
        echo '</tr>';
    } else {
        echo '<tr>';
        echo '<td>'.$no.'</td>';
        echo '<td></td>';
        echo '<td></td>';
        echo '<td></td>';
        echo '</tr>';
    }
    $no++;
}
?>

您需要检查数据是否基于$x var设置,然后呈现空行或填充。

答案 1 :(得分:1)

您不需要嵌套循环。只是从15的单个循环,每次迭代显示数组的相应元素,如果没有这样的元素则显示空单元格。

for ($x = 1; $x <= 5; $x++) {
    echo "<tr>";
    echo "<td>" . $x . "<td>";
    if (isset($mydata[$x-1])) {
        $row = $mydata[$x-1];
        echo '<td>'.$row->id.'</td>';
        echo '<td>'.$row->name.'</td>';
        echo '<td>'.$row->class.'</td>';
    } else { // show empty fields
        echo "<td></td><td></td><td></td>"; 
    }
    echo "</tr>";
}

也不需要单独的变量$x$no