我可能只是感到厌倦或某些事情,但我无法弄清楚我是如何根据<input>
的name属性访问正确的$_POST
变量。
通过简单的输入,这很容易;
<input name="email">
$inputName = 'email';
$inputValue = $_POST[$inputName];
但它如何与数组一起使用?
<input name="foo[bar][0]">
$inputName = 'foo[bar][0]';
$inputValue = $_POST[$inputName]; # Obviously fails...
那么如何将其转换为$_POST[foo][bar][0]
,是否有一些内置的PHP函数呢?
我不确定这是否与其他问题重复,因为他想使用dot.separation
访问数组并且我想使用标准的表单名称方式?
多一点背景;这是一个处理我正在构建的PHP类的Form,用户可以在其中添加如下字段:
$form->addField(['name' => 'my[field][name]']);
稍后,当我想获取提交字段的值时,我必须经历的是用户指定的名称。
如果我是手动执行此操作,我显然会写$_POST[foo][bar][0]
但现在我永远无法知道该字段的名称,因此我必须以某种方式解析它。
好的,这已经扩展了一点我必须知道,根据输入名称,输入的值是什么,或如果选择了该输入(对于选择,无线电元素)或者该输入是值数组的一部分(多个选择,复选框)。我还希望它支持任何输入名称,例如foo[bar][][][baz][12][]
。
如果有人做了类似的事情,我很乐意听到它,但它倾向于我自己编写自定义代码。
答案 0 :(得分:-2)
您可以像$_POST['foo']['bar'][0]
;