Php 表单提交后不支持将点(.)作为数组键字符
我有这样一个数组:Php 表单提交后不支持将点(.)作为数组键字符,php,arrays,array-key,Php,Arrays,Array Key,我有这样一个数组: $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){?&
$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>
查看输出数组,键已更改,点(.)替换为。
为什么会发生这种情况???请看
变量名中的点和空格转换为下划线。例如,
变成了$\u请求[“a\u b”]
您可以通过使用file\u get\u contents('php://input'); 然后,如果无法避免GET或POST变量名中的点,请自行读取和解析输入。此变量名的可能重复项您的意思可能是仅用于
register\u global
索引更改了带下划线的点??
Array ( [a_b] => a.b [b_c] => b.c [sub] => Submit )