在php中从数组中提取特定变量

时间:2012-05-24 14:02:51

标签: php arrays variables

这是针对产品退货的在线表单。用户从菜单中选择Refund,Replacement,90DaysExpired等...(选项如下所示)。这些选择中的每一个都有相应的消息(在变量内部,也在下面显示)。我想根据用户的选择将变量($ tbrefund,$ tbreplace等)的值传递给变量' $ message'。

这是我到目前为止所得到的,我收到以下错误:

注意:未定义的变量:消息

$Rarray = array(
"Refund" => "$tbrefund",
"Replacement" => "$tbreplace",
"90DaysExpired" => "$expiredwarranty",
"ContactTech" => "$contacttech",
"RefundExpiredReplace" => "$outsiderefund",
"NoExRefund" => "$noexchange",
"ManuWarranty" => "$manuwarranty",
);

if (isset($Rarray[$Request]))
   $message =  $Rarray[$Request];

非常感谢任何帮助。

编辑: 这是产生错误的一行,我已经知道它不相关...

$send_contact=mail($to,$subject,$message,$header);

你为什么要求某人寻求帮助呢?它只会让新人不愿意提出任何问题......

1 个答案:

答案 0 :(得分:2)

错误是因为$ Request未正确设置。

if (isset($Rarray[$Request]))
{
   $message = $Rarray[$Request];
}
else
{
   $message = "Invalid";
}

所以你的实际问题是“为什么$ Request不工作​​?”

答案是它取决于$ Request来自哪里,所以你需要向我们展示一些$ Request echoed(或var_dump())的例子 - 但是我猜测你发送的是$ Request小写(如果它是通过URL或其他东西) - 但你的数组是大写的。

编辑:我希望您不要期望您的邮件不是“$ tbreplace”或其他内容。

我猜你打算做这样的事情?

$Rarray = array(
"Refund" => $tbrefund,
"Replacement" => $tbreplace,
"90DaysExpired" => $expiredwarranty,
"ContactTech" => $contacttech,
"RefundExpiredReplace" => $outsiderefund,
"NoExRefund" => $noexchange,
"ManuWarranty" => $manuwarranty
);