一个页面正在向我发布一个数组,如下所示:
<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']
不返回任何