我没有太多使用php的经验,我正在尝试做一个vigenere表,但是它返回了空数组,这就是我到目前为止所知道的:
$row= range('a','z');
echo "<table border =\"1\" style='border-collapse: collapse'>";
for ( $row = 1; $row <= 26; $row++) { 
    echo "<tr> ";
    for ($col = 1; $col <= 26; $col++) { 
       $p = range('a','z');
       echo "<td>$p</td> ";
        }
        echo "</tr>";
    }
    echo "</table>";发布于 2021-06-08 05:53:33
您是否正在尝试创建一个从A到Z的26行26列的表?例如..。
+---+---+---+---+---+---+---+-----+---+---+---+
| A | B | C | D | E | F | G | ... | X | Y | Z |
| A | B | C | D | E | F | G | ... | X | Y | Z |
| A | B | C | D | E | F | G | ... | X | Y | Z |
| A | B | C | D | E | F | G | ... | X | Y | Z |
| A | B | C | D | E | F | G | ... | X | Y | Z |
| ...                                         |
| A | B | C | D | E | F | G | ... | X | Y | Z |
+---+---+---+---+---+---+---+-----+---+---+---+如果这就是你想要做的,你可以通过以下方法来实现:
echo '<table border="1" style="border-collapse: collapse;">';
    foreach (range('a', 'z') as $row_char) {
        echo '<tr>';
            foreach (range('a', 'z') as $col_char) {
                echo '<td>';
                    echo $col_char;
                echo '</td>';
            }
        echo '</tr>';
    }
echo '</table>';发布于 2021-06-08 06:37:54
您的尝试有几个问题:
$row中设置字母范围,但是当您在外部循环中将其用作计数器时,请覆盖$row。警告。
< code >F29
从任何合适的数组开始,您可以使用单个循环创建所需的结果,并仔细使用implode()来创建行:
declare(strict_types=1);
function vigenere(array $arr){
    $output = "<table>\n";
    // iterate over the array
    foreach($arr as $letter) {
        // Create output row
        $output .= '<tr><td>'.implode('</td><td>',$arr).'</td></tr>'.PHP_EOL;
        // rotate the array for the next row
        $arr[] = array_shift($arr);
    }
    $output .= '</table>';
    return $output;
}
echo vigenere(range("A","Z"));https://stackoverflow.com/questions/67878774
复制相似问题