无法正确打印9x9表格

时间:2015-06-01 12:03:40

标签: php html html-table

代码在第一行中给出前10个数字,在其他7行中给出9个数字,在最后一行给出8个数字。

如何获取9x9矩阵,以便所有行都有9个数字?

我已经尝试了一切,但没有任何效果。有没有办法做到这一点?

<table border=1>
    <tr>
    <?php

        for ($i = 1; $i < 82; $i++) {
            $arr[] = $i;
        }

        for ($i = 0; $i < 81; $i++) {
            echo '<td>' . $arr[$i] . '</td>';

        if ($i % 9 == 0 && $i != 0) {
            echo "</tr><tr>";
        }


        }

    ?>
    </tr>
</table>

5 个答案:

答案 0 :(得分:0)

这应该适合你:

这里我首先使用range()创建一个包含81个元素的数组。然后我array_chunk()将数组转换为二维数组,其中每个子数组有9个元素。

最后,只需循环遍历所有子数组,然后implode()将它们分成一行。

<table border=1>
<?php

    $arr = range(1, 81);
    $arr = array_chunk($arr, 9);

    foreach($arr as $v)
        echo "<tr><td>" . implode("</td><td>", $v) . "</td></tr>";

?>
</table>

输出:

1   2   3   4   5   6   7   8   9
10  11  12  13  14  15  16  17  18
19  20  21  22  23  24  25  26  27
28  29  30  31  32  33  34  35  36
37  38  39  40  41  42  43  44  45
46  47  48  49  50  51  52  53  54
55  56  57  58  59  60  61  62  63
64  65  66  67  68  69  70  71  72
73  74  75  76  77  78  79  80  81

答案 1 :(得分:0)

你正在开始$i=0;所以第一个条件是真的,在第一个结果之后放置了</tr>

<table border=1>
    <tr>
    <?php
    for ($i = 1; $i < 82; $i++) {
    $arr[] = $i;
}
    $j=1;
    for ($i=0; $i<81; $i++)
    {
        echo '<td>'.$arr[$i].'</td>';

        if ($j%9==0) 
        {
           echo "</tr><tr>";
        }


    $j++;}
    ?>
    </tr>
</table>

输出

1   2   3   4   5   6   7   8   9
10  11  12  13  14  15  16  17  18
19  20  21  22  23  24  25  26  27
28  29  30  31  32  33  34  35  36
37  38  39  40  41  42  43  44  45
46  47  48  49  50  51  52  53  54
55  56  57  58  59  60  61  62  63
64  65  66  67  68  69  70  71  72
73  74  75  76  77  78  79  80  81

答案 2 :(得分:0)

最好的是@Rizier所说的内容,但如果您只想修改代码,那么: -

<table border=1>
    <tr>
    <?php
    for ($i = 1; $i < 82; $i++) {
    $arr[] = $i;
}
    $j=1; //add a new count starts from 1
    for ($i=0; $i<81; $i++)
    {
        echo '<td>'.$arr[$i].'</td>';

        if ($j%9==0)  // check counter modules 9 will be zero or not. it will break after each 9 iteration.
        {
           echo "</tr><tr>";
        }


    $j++;} // increase the value of counter
    ?>
    </tr>
</table>

输出: - http://prntscr.com/7bu34m

答案 3 :(得分:0)

试试这个

ALAssetsLibraryGroupsEnumerationResultsBlock resultsBlock = ^(ALAssetsGroup *group, BOOL *stop)  {
    if (group){

    }
};

ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error){

};

NSUInteger type =
ALAssetsGroupLibrary | ALAssetsGroupAlbum | ALAssetsGroupEvent |
ALAssetsGroupFaces | ALAssetsGroupPhotoStream;
[self.assetsLibrary enumerateGroupsWithTypes:type
                                  usingBlock:resultsBlock
                                failureBlock:failureBlock];

答案 4 :(得分:0)

您的代码几乎是最新的...请回复&#39;。$ arr [$ i]。&#39;&#39 ;;像这样的if条件下面的行...

<table border=1>
<tr>
<?php
for ($i = 1; $i < 82; $i++) {
    $arr[] = $i;
}
for ($i=0; $i<81; $i++)
{

    if ($i%9==0 && $i!=0) 
    {
       echo "</tr><tr>";
    }
    echo '<td>'.$arr[$i].'</td>';



}
?>
</tr>
</table>