PHP解析数组帖子


PHP parse array post

一个页面正在向我发布一个数组,如下所示:

<input type="text" name="fields[email_address][value]" value="1" />
<input type="text" name="fields[first_name][value]" value="jim" />
<input type="text" name="fields[zip_code][value]" value="45254" />...

一个数组。

我可以像这样简单地循环浏览

    foreach ( $_POST['fields'] as $key => $field ) {
        echo $key." ".$field['value'] ;
        }

以上结果:

第一名jim
电子邮件地址1
address_postal_code 45254

但我真正需要做的是仅引用数组中的zip(45254),可能类似于:

echo $_POST['fields']['zip_code']; //or
echo $_POST['fields']['zip_code']['value']; 

结果:45254

这可能吗?

更新

<input type="text" name="fields[zip_code][value]" value="45254" />

成为

<input type="text" name="fields[zip_code]" value="45254" />

编辑:我不知道你不能修改html,这在最初的问题中没有指定。

你唯一能做的就是:

$_POST['fields']['zip_code'] = $_POST['fields']['zip_code']['value'];

然而,在这一点上,您还不如将$_POST['fields']['zip_code']['value']分配给一个变量并使用它。

如果你不能更新表单的html,你所能做的就是在数据被分配给$_POST超全局后处理数据,就像它是任何其他数组一样

编辑2:添加一个完整的片段来尝试:

如果你这样做,你会得到什么?:

<?php
foreach ( $_POST['fields'] as $key => $field ) {
    echo $key." ".$field['value'] ."<br />";
}
echo $_POST['fields']['zip_code']['value'] . "<br />";
$_POST['fields']['zip_code'] = $_POST['fields']['zip_code']['value'];
echo $_POST['fields']['zip_code'];
?>

我只是用一个简单的形式尝试了一下:

<form method="post" action="test.php">
  <input type="text" name="fields[email_address][value]" value="1" />
  <input type="text" name="fields[first_name][value]" value="jim" />
  <input type="text" name="fields[zip_code][value]" value="45254" />
  <input type="submit" />
</form>

而且它的效果和预期的一样。

这看起来很草率,但它起了作用:

foreach ( $_POST['fields'] as $key => $field ) {
$$key = $field['value'] ;
        }
echo $address_postal_code;

45254

echo $_POST['fields']['zip_code']['value'] 

不返回任何