Php 如何在数组中存储变量?

Php 如何在数组中存储变量?,php,arrays,Php,Arrays,我将表单提交的数据存储在名为$post\u data的变量中。当我打印($post_数据)时我得到以下数组: Array ( [element_3] => John Doe [element_2] => john@example.com [element_14] => City [element_15] => Country [form_id] => 1 [submit] => Submit ); 我想将一些字

我将表单提交的数据存储在名为
$post\u data
的变量中。当我打印($post_数据)时我得到以下数组:

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问题,在名称和电子邮件数组之间是否需要另一个逗号(

谢谢

另一种方法可能是(取决于第二个脚本的“修复”程度,如果可以修改的话)

要得到更像您问题中的结果:

$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'];

我不太清楚你为什么要这么做,但是根据字段名,你可以考虑使用循环来帮助整个过程自动化。p>

$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
    );
}

这将密钥/标签对的存储/映射与处理密钥/标签对的部件分开,从而使以后的维护和修改更加容易

名称和电子邮件数组之间是否需要另一个逗号(,)?
需要。除此之外,您的解决方案看起来不错。
下面的代码行得通吗?
在询问之前您是否尝试过测试它?是的,您需要逗号作为数组元素之间的分隔符。我确实同意Serty的说法。不要害怕尝试。并确保您已启用错误显示(仅在您的测试环境中!),并将
错误报告设置为适当的级别(
E\u ALL
)。为什么不为参数指定有意义的名称,如“name”和“E-mail”,而不是“element\u 3”和“element\u 2”?是的,它可以工作,如果你在名字和电子邮件地址之间加一个逗号,这正好解释了我需要什么!
$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
    );
}