我有这样的表格
<form> <input type="text" class="form-control" placeholder="Titel" name="levels[level]"> <input type="text" class="form-control" placeholder="Titel" name="levels[build_time]"> <input type="text" class="form-control" placeholder="Titel" name="levels[level]"> <input type="text" class="form-control" placeholder="Titel" name="levels[build_time]"> </form>
我想要的$ _POST输出是一个像
Array ( [1] => Array ( [level] => 1 [build_time] => 123 ) [2] => Array ( [level] => 2 [build_time] => 456 ) )
我知道我可以做类似name =“ levels [1] [build_time]”之类的事情,但是由于这些元素是动态添加的,因此很难添加索引。还有其他办法吗?
编辑:
按照建议,我更改了表格。我现在也包含了我的整个HTML,因为我认为这里缺少一些内容。我的HTML现在:
<div class="form-group"> <label class="col-md-2">Name(z.B. 1)</label> <div class="col-md-10"> <input type="text" class="form-control" placeholder="Titel" name="levels[][level]"> </div> <label class="col-md-2">Bauzeit(In Sekunden)</label> <div class="col-md-10"> <input type="text" class="form-control" placeholder="Titel" name="levels[][build_time]"> </div> </div> <div class="form-group"> <label class="col-md-2">Name(z.B. 1)</label> <div class="col-md-10"> <input type="text" class="form-control" placeholder="Titel" name="levels[][level]"> </div> <label class="col-md-2">Bauzeit(In Sekunden)</label> <div class="col-md-10"> <input type="text" class="form-control" placeholder="Titel" name="levels[][build_time]"> </div> </div>
我现在得到的输出是:
[levels] => Array ( [0] => Array ( [level] => 1 ) [1] => Array ( [build_time] => 234 ) [2] => Array ( [level] => 2 ) [3] => Array ( [build_time] => 456 ) )
编辑2:
根据您的编辑建议,我编辑了表单并将方括号移到名称的末尾。我现在得到的输出是:
[levels] => Array ( [level] => Array ( [0] => 1 [1] => 2 ) [build_time] => Array ( [0] => 234 [1] => 456 ) )
我想那会起作用,但看起来仍然很复杂。没有更好的办法吗?
只需添加[]诸如
[]
<input type="text" class="form-control" placeholder="Titel" name="levels[level][]"> <input type="text" class="form-control" placeholder="Titel" name="levels[build_time][]">
获取该模板,然后甚至可以使用循环添加这些模板。
然后,您可以根据需要动态地添加这些内容,而无需提供索引。PHP将像预期的场景示例那样拾取它们。
编辑
抱歉,我在错误的位置放置了大括号,这会使每个新值成为一个新的数组元素。现在使用更新的代码,这将为您提供以下数组结构
levels > level (Array) levels > build_time (Array)
两个子阵列上的相同索引将为您提供一对。例如
echo $levels["level"][5]; echo $levels["build_time"][5];