我将表单提交中的数据存储在名为$post_data
的变量中。当我print_r($post_data);
时,我得到以下数组:
Array
(
[element_3] => John Doe
[element_2] => john@example.com
[element_14] => City
[element_15] => Country
[form_id] => 1
[submit] => Submit
);
我想将一些字段存储在另一个数组中以传递给另一个脚本。我的代码下面会工作吗?如果没有,我该如何解决?
$submitted_data = array(
'Fields' => array(
array(
'Key' => 'Name',
'Value' => $post_data['element_3']
)
array(
'Key' => 'Email',
'Value' => $post_data['element_2']
)
)
)
另外,一个PHP noob问题,我是否需要在Name和Email数组之间使用另一个逗号(,
)?
谢谢!
答案 0 :(得分:1)
我不确定您为什么要这样做,但根据字段名称,您可以考虑使用循环来帮助自动化整个过程。
$field_map = array(
'element_3' => 'Name',
'element_2' => 'E-mail',
'element_14' => 'City',
'element_15' => 'Country'
);
$submitted_data = array('fields' => array());
foreach ( $field_map as $key => $label)
{
$submitted_data['fields'][] = array(
'key' => $key, // e.g. element_2
'label' => $label, // e.g. E-mail
'value' => $post_data[$key] // e.g. john@example.com
);
}
这将键/标签对的存储/映射与处理它的部分分开,使将来更容易维护和修改。
答案 1 :(得分:0)
另一种方式可能是(取决于第二个脚本的“固定”方式,如果你可以改变它)。
$submitted_data['Name']=$post_data['element_3'];
$submitted_data['Email']=$post_data['element_2'];
要获得更像您问题中的结果的结果:
$submitted_data['Fields']['0']['Key']='Name';
$submitted_data['Fields']['0']['Value']=$post_data['element_3'];
$submitted_data['Fields']['1']['Key']='Email';
$submitted_data['Fields']['1']['Value']=$post_data['element_2'];