尽管数组中的数据,PHP foreach循环仍未传递

1nt*_*nce 1 php arrays foreach

我的PHP脚本有一个奇怪的问题.我有一个在脚本开头定义的数组$ keys:

$keys = array("name","date","event","location","address","description","link","linkname");
Run Code Online (Sandbox Code Playgroud)

在某些时候,我正在循环数组,尝试打印键:

foreach ($keys as $key_show) {
    echo ($key_show);
}
Run Code Online (Sandbox Code Playgroud)

实际上并没有打印出来.我在循环之前放了一个var_dump($ keys),看起来这个数组在脚本的这一点上仍然填充了上面的条目.有趣的是,只要我把var_dump放在那里,键也出现在foreach循环中.

完整的脚本可以在这里看到

Ola*_*che 5

从您的链接

} elseif (isset($_POST['editconfirm'])) {
    ...
    if ($jsonConcerts) {
        echo "<form method=\"POST\" action=\"edit.php\"";
        //var_dump($keys);
        foreach ($keys as $key_show) {
            echo ($key_show. ": ");
            //echo "<input class=\"wide\" name=\"".$key.
            //"\" value=\"".$jsonConcerts[$counter][$key]."\"><br>\n";
        }
        ...
Run Code Online (Sandbox Code Playgroud)

您不关闭form标记,因此所有$key_show值都被视为form标记的属性,因此永远不会显示在您的html输出中.

如果在命令行上运行此脚本,您将看到包含或不包含的数组值var_dump().