在PHP数组中添加字符串到值

时间:2016-09-08 21:06:46

标签: php arrays string forms concat

我有一个HTML表单,它以某种任务所需的格式收集值。完成任务后,我想使用表单中的相同值执行其他任务,而无需用户再次输入信息。

我遇到的问题是第二个任务要求将两个字段发送到目的地时采用不同的格式。

这是正在发送的第二个脚本上的数组,其中左侧的键通过表单中的值分配右侧的值。

    $contactFields = array(
    // field name in myServer => field name as specified in html form
    'aaaaaaaa' =>  'email',
    'bbbbbbbb' => 'stuff',
    'cccccccc' =>  'morestuff', 
    'dddddddd' =>  'blah', 
    'eeeeeeee' =>  'blahh', 
    'ffffffff' =>  'blahh',
    'gggggggg' =>  'tobacco', //tobacco use
    'hhhhhhhh' =>  'amount', //face amount
);

我要做的是添加字符串',000'达到' amount'的价值取自用户输入。同样,我不能只改变HTML表单上的值,因为我需要为第一个脚本设置不同的值。

我试过了

'hhhhhhhh' => 'amount'.',000',

没有bueno。我也在阵列之前尝试了类似的方法,但无济于事。

对于接收' tobacco'的字段,我试图将其从0或1值转换为是或否值。我试过这个

    if ($tobacco == 1) {
    $tobacco = "yes";
} else if ($tobacco == 0) {
    $tobacco = "no";
} else {
    $tobacco = "?";
};

但这只是导致脚本返回空值。

$ Tobacco最初是在contactFields数组之上分配的

//

Assigns variables to input fields
$aaaaaaaa  = $_POST['email'];
$bbbbbbbb  = $_POST['aaaaaaaa'];
$cccccccc  = $_POST['bbbbbbbb'];
$dddddddd  = $_POST['cccccccc'];
$eeeeeeee  = $_POST['dddddddd'];
$ffffffff  = $_POST['eeeeeeee'];
$gggggggg  = $_POST['tobacco'];
$hhhhhhhh  = $_POST['amount'];

有什么建议吗?谢谢。 PHP不是我的强项。

1 个答案:

答案 0 :(得分:1)

如果要更改数组项的值,可以这样做:

$contactFields['hhhhhhhh'] = $contactFields['hhhhhhhh'].",000";
echo $contactFields['hhhhhhhh'];
// outputs
// amount,000

$contactFields['gggggggg'] = ($contactFields['gggggggg'] == '1' ? 'yes' : 'no');
echo $contactFields['gggggggg'];
// outputs
// yes

或者如果您不想更改数组,可以设置变量:

$newAmmount = $contactFields['hhhhhhhh'].",000";
echo $newAmount;
// outputs
// amount,000

$newTobacco = ($contactFields['gggggggg'] == '1' ? 'yes' : 'no');
echo $newTobacco;
// outputs
// yes

但如前所述,如果'amount'确实是一个数字,请使用数字函数,不要将其存储为字符串。