PHP解析数组的帖子

时间:2015-03-26 22:52:25

标签: php arrays 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'] ;
        }

上述结果:

first_name jim
email_address 1
address_postal_code 45254

但我真正需要做的是引用数组中的zip(45254),可能就像:

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

结果:45254

这可能吗?

2 个答案:

答案 0 :(得分:2)

更新

<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>

它按预期工作。

答案 1 :(得分:0)

这似乎很草率,但确实有效:

foreach ( $_POST['fields'] as $key => $field ) {

$$key = $field['value'] ;
        }

echo $address_postal_code;

45254

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

什么都不返回