页面正在向我发布一个数组:
<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
这可能吗?
答案 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']
什么都不返回