Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获得确切的列数,循环语句_Php_Loops_While Loop_Html Table - Fatal编程技术网

Php 如何获得确切的列数,循环语句

Php 如何获得确切的列数,循环语句,php,loops,while-loop,html-table,Php,Loops,While Loop,Html Table,我正在做一个循环,显示一个有12列的表。它从数字1912开始,到2013结束。问题是,当它循环到1920时,它没有余数并开始一个新行。我需要获取代码,以便在第12列之后创建新行 这就是我得到的结果: 以下是我目前掌握的情况: <?php $columns = 12; $Year = 1912; echo "<table width="755" border="1">"; echo "<tr>"; while ($Year

我正在做一个循环,显示一个有12列的表。它从数字1912开始,到2013结束。问题是,当它循环到1920时,它没有余数并开始一个新行。我需要获取代码,以便在第12列之后创建新行

这就是我得到的结果:

以下是我目前掌握的情况:

<?php
    $columns = 12;
    $Year = 1912;

    echo "<table width="755" border="1">";
    echo "<tr>";
    while ($Year <= 2013) {
        if (!($Year % $columns)) {
            echo "</tr><tr>";
        }
        echo "<td>$Year</td>";
        ++$Year;
    }
    echo "</tr>";
    echo "</table>";
?>


如果要每12列换行一次,只需跟踪当前列并使用该列确定何时结束该行(例如每12列)--

$col=1;
而($年解决方案1
您需要为匹配的年份追加和前置列,如下所示:

下面是这样做的代码:

<?php
    $columns = 12;
    $startingYear = 1912;
    $endingYear = 2013;

    $realStartingYear = $startingYear;
    $realEndingYear = $endingYear;

    //Find the real starting year by going back a year until we hit the right one
    while ($realStartingYear % $columns) {
        $realStartingYear--;
    }

    //Find the real ending year by going forward a year until we hit the right one
    while ($realEndingYear % $columns) {
        $realEndingYear++;
    }

    echo '<table width="755" border="1">';
    echo "<tr>";
    for ($year = $realStartingYear; $year < $realEndingYear; $year++) {
        if (!($year % $columns)) {
            echo "</tr><tr>";
        }
        echo "<td>" . ($year >= $startingYear && $year <= $endingYear ? $year : "") . "</td>";
    }
    echo "</tr>";
    echo "</table>";
?>

如果还想显示其他列,只需更改

echo "<td>" . ($year >= $startingYear && $year <= $endingYear ? $year : "") . "</td>";
echo”“($year>=$startingYear&&$year

您的第一个echo语句在语法上无效。很好!非常感谢。我是一名初学者,需要进一步熟悉PHP。如果您知道学习和练习的好资源,我将不胜感激。谢谢!继续学习,继续编程!在路上,您将找到许多好资源,就像您发现StackOverflow一样
<?php
    $columns = 12;
    $startingYear = 1912;
    $endingYear = 2013;

    $realStartingYear = $startingYear;
    $realEndingYear = $endingYear;

    //Find the real starting year by going back a year until we hit the right one
    while ($realStartingYear % $columns) {
        $realStartingYear--;
    }

    //Find the real ending year by going forward a year until we hit the right one
    while ($realEndingYear % $columns) {
        $realEndingYear++;
    }

    echo '<table width="755" border="1">';
    echo "<tr>";
    for ($year = $realStartingYear; $year < $realEndingYear; $year++) {
        if (!($year % $columns)) {
            echo "</tr><tr>";
        }
        echo "<td>" . ($year >= $startingYear && $year <= $endingYear ? $year : "") . "</td>";
    }
    echo "</tr>";
    echo "</table>";
?>
echo "<td>" . ($year >= $startingYear && $year <= $endingYear ? $year : "") . "</td>";
echo "<td>" . $year . "</td>";
<?php
    $columns = 12;
    $startingYear = 1912;
    $endingYear = 2013;

    echo '<table width="755" border="1">';
    for ($i = $startingYear; $i <= $endingYear; $i += $columns) {
        echo "<tr>";
        for ($j = 0; $j < $columns; $j++) {
            echo "<td>" . ($i + $j) . "</td>";
        }
        echo "</tr>";
    }
    echo "</tr>";
    echo "</table>";
?>