У меня есть массив, как:
$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 )
Посмотрите на выходной массив, ключи изменены, точка (.) Заменяется на _.
Почему это случилось ??
Пожалуйста, посмотрите на переменная. внешняя документация
Точки и пробелы в именах переменных преобразуются в подчеркивания. Например
<input name="a.b" />
становится $ _REQUEST [«a_b»].
Вы можете преодолеть это с помощью file_get_contents (‘php: // input’); а затем чтение и синтаксический анализ ввода самостоятельно, если вы не можете избежать точек в именах переменных, которые идут через GET или POST.
Других решений пока нет …