"a.b", "b.c" => "b.c"); 当我打印它时,它只是显示 Array ( [a.b] => a.b [b.c] =>-6ren">
gpt4 book ai didi

php - 表单提交后不支持将点 (.) 作为数组键字符

转载 作者:行者123 更新时间:2023-12-05 06:42:15 24 4
gpt4 key购买 nike

我有一个像这样的数组:

$arr = array("a.b" => "a.b", "b.c" => "b.c");

当我打印它时,它只是显示

Array ( [a.b] => a.b [b.c] => b.c )

但是当我使用循环来使用复选框名称和值中的键和值时:

<form action="" method="post">
<ul>
<?php
foreach($arr as $k => $v){?>
<li><input type="checkbox" name="<?php echo $v;?>" value="<?php echo $k;?>"><?php echo $v;?></li>
<?php }?>
</ul>
<input name="sub" type="submit"/>
</form>

当我按下提交按钮时,结果显示如下:

Array ( [a_b] => a.b [b_c] => b.c [sub] => Submit )

查看输出数组,键变了,点(.)替换为_

为什么会这样??

最佳答案

请看variables.external documentation

Dots and spaces in variable names are converted to underscores. For example <input name="a.b" /> becomes $_REQUEST["a_b"].

您可以使用 file_get_contents('php://input'); 来解决这个问题如果无法避免通过 GET 或 POST 获得的变量名称中的点,则自行读取和解析输入。

关于php - 表单提交后不支持将点 (.) 作为数组键字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com