$_POST 中的多维关联数组 returns 只有最后一个值
Multidimensional associative array in $_POST returns only last value
我尝试制作一个多维关联数组,但 $_post 中只返回一个值。
查看工作示例:
<html>
<?php
if (isset( $_POST['form_submit'])){
$Step=$_POST['form_submit'];
If ($Step>1) $Step=0;
}else{
$Step=0;
}
switch ($Step) {
case 0:
echo '
<form method="post">
<input name="Txt[First]" type="text"/>
<input name="Txt[First][Second]" type="text"/>
<input name="Txt[First][Second][Third]" type="text"/>
<input name="Txt[First][Second][Third][Fourth]" type="text"/>
<button type="submit" name="form_submit" value="'.($Step+1).'">submit</button>
</form>';
break;
case 1:
echo '<br/></br>print_r($_POST):<br/>';
print_r($_POST);
break;
}
?>
</html>
编辑
如果我在每个输入名称的末尾添加“[]”,我将获得所有值,但方式错误:
$_POST 将像:
Array (
[Txt] => Array (
[First] => Array (
[0] => one
[Second] => Array (
[0] => two
[Third] => Array (
[0] => three
[Fourth] => Array (
[0] => four
)
)
)
)
)
但我需要这样的东西:
$_Post[First] => one
$_Post[First][Second] => two
$_Post[First][Second][Third] => three
...等等
你想要的不可能。你只能在一个数组中有索引,但是如果 $_POST['Txt']['First']
是一个像 one
这样的字符串,那么它不能也是一个带有 ['Second']
索引的数组。
您可以将每个级别的文本放在命名元素中:
<form method="post">
<input name="Txt[First][text]" type="text"/>
<input name="Txt[First][Second][text]" type="text"/>
<input name="Txt[First][Second][Third][text]" type="text"/>
<input name="Txt[First][Second][Third][Fourth][text]" type="text"/>
<button type="submit" name="form_submit" value="'.($Step+1).'">submit</button>
</form>';
那么结果就是:
$_Post['Txt'][First]['text'] => one
$_Post['Txt'][First][Second]['text'] => two
$_Post['Txt'][First][Second][Third]['text'] => three
$_Post['Txt'][First][Second][Third][Fourth]['text'] => three
我尝试制作一个多维关联数组,但 $_post 中只返回一个值。
查看工作示例:
<html>
<?php
if (isset( $_POST['form_submit'])){
$Step=$_POST['form_submit'];
If ($Step>1) $Step=0;
}else{
$Step=0;
}
switch ($Step) {
case 0:
echo '
<form method="post">
<input name="Txt[First]" type="text"/>
<input name="Txt[First][Second]" type="text"/>
<input name="Txt[First][Second][Third]" type="text"/>
<input name="Txt[First][Second][Third][Fourth]" type="text"/>
<button type="submit" name="form_submit" value="'.($Step+1).'">submit</button>
</form>';
break;
case 1:
echo '<br/></br>print_r($_POST):<br/>';
print_r($_POST);
break;
}
?>
</html>
编辑
如果我在每个输入名称的末尾添加“[]”,我将获得所有值,但方式错误:
$_POST 将像:
Array (
[Txt] => Array (
[First] => Array (
[0] => one
[Second] => Array (
[0] => two
[Third] => Array (
[0] => three
[Fourth] => Array (
[0] => four
)
)
)
)
)
但我需要这样的东西:
$_Post[First] => one
$_Post[First][Second] => two
$_Post[First][Second][Third] => three
...等等
你想要的不可能。你只能在一个数组中有索引,但是如果 $_POST['Txt']['First']
是一个像 one
这样的字符串,那么它不能也是一个带有 ['Second']
索引的数组。
您可以将每个级别的文本放在命名元素中:
<form method="post">
<input name="Txt[First][text]" type="text"/>
<input name="Txt[First][Second][text]" type="text"/>
<input name="Txt[First][Second][Third][text]" type="text"/>
<input name="Txt[First][Second][Third][Fourth][text]" type="text"/>
<button type="submit" name="form_submit" value="'.($Step+1).'">submit</button>
</form>';
那么结果就是:
$_Post['Txt'][First]['text'] => one
$_Post['Txt'][First][Second]['text'] => two
$_Post['Txt'][First][Second][Third]['text'] => three
$_Post['Txt'][First][Second][Third][Fourth]['text'] => three