首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php中获取vigenere表?

如何在php中获取vigenere表?
EN

Stack Overflow用户
提问于 2021-06-08 05:15:43
回答 2查看 31关注 0票数 0

我没有太多使用php的经验,我正在尝试做一个vigenere表,但是它返回了空数组,这就是我到目前为止所知道的:

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

回答 2

Stack Overflow用户

发布于 2021-06-08 05:53:33

您是否正在尝试创建一个从A到Z的26行26列的表?例如..。

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

如果这就是你想要做的,你可以通过以下方法来实现:

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

输出:https://jsfiddle.net/thelevicole/23tgsoe1/

票数 0
EN

Stack Overflow用户

发布于 2021-06-08 06:37:54

您的尝试有几个问题:

  • 您可以在$row中设置字母范围,但是当您在外部循环中将其用作计数器时,请覆盖$row
  • 在内部循环中,您可以创建一个新的字母范围作为数组,但尝试将它们作为字符串输出,这会在每行上引发

警告。

  • 您的代码不会在每行之间旋转字母,因此维根埃密码根本不起作用。

< code >F29

从任何合适的数组开始,您可以使用单个循环创建所需的结果,并仔细使用implode()来创建行:

代码语言:javascript
运行
复制
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://3v4l.org/mYEMk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67878774

复制
相关文章

相似问题

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