首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法正确打印9x9表

无法正确打印9x9表
EN

Stack Overflow用户
提问于 2015-06-01 12:03:40
回答 5查看 157关注 0票数 0

代码给出了第一行的前10个数字和其他7行的9个数字以及最后一行的8个数字。

如何获得9x9矩阵,使所有行都有9个数字?

我什么都试过了,但都没有用。有办法这样做吗?

代码语言:javascript
运行
复制
<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>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-01 12:13:17

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

代码语言:javascript
运行
复制
<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

票数 0
EN

Stack Overflow用户

发布于 2015-06-01 12:08:17

这应该适用于你:

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

最后,只需循环遍历所有子数组,并将它们implode()到一行中。

代码语言:javascript
运行
复制
<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>

产出:

代码语言:javascript
运行
复制
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
票数 0
EN

Stack Overflow用户

发布于 2015-06-01 12:10:40

您正在启动$i=0;,因此第一个条件是true,它是在第一个结果之后放置</tr>的。

代码语言:javascript
运行
复制
<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>

输出

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30573016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档