根据输入数组名访问$ _POST var

时间:2016-09-23 12:58:34

标签: php arrays forms post

我可能只是感到厌倦或某些事情,但我无法弄清楚我是如何根据<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][]

如果有人做了类似的事情,我很乐意听到它,但它倾向于我自己编写自定义代码。

1 个答案:

答案 0 :(得分:-2)

您可以像$_POST['foo']['bar'][0];

那样访问