我对php很新。我正在尝试将经典的asp vbscript函数转换为php。它循环遍历request.form
值并生成一个字符串。我找到this article关于循环$_REQUEST
。
这是vb函数:
obj = "{"
for each prod in request.Form
if prod <> "checkout" then obj = obj & "'" & prod & "':" & request.Form(prod) & ","
next
obj = left(obj, len(obj)-1) & "}" 'take out last comma
这是表格中的典型数据:
checkout: true
2012ORGANIC500ML: 1
它会生成此字符串:
{'2012ORGANIC500ML':1}
我在php中的尝试是这样的:
$obj = "{";
foreach ($_REQUEST as $prod) {
if ($prod != "checkout") { $obj .= "'" . $prod . "':" . $_REQUEST[$prod] . ","; };
};
$obj .= substr($obj, 0, -1) . "}";
返回此错误字符串:
{'true':,'1':,{'true':,'1':}
有人能指出我正确的方向吗? 提前谢谢。
答案 0 :(得分:1)
如果你做foreach($ _ REQUEST as $ prod)那么你只得到你的循环中的值,而不是键。 所以试试这个:
foreach ($_REQUEST as $key => $val) {
if ($key != "checkout") { $obj .= "'" . $key . "':" . $val . ","; };
};
顺便说一句......如果您需要json格式的数据,您只需执行json_encode($ data)。
$data = $_REQUEST;
$checkout = $data['checkout']; // get your checkout var
unset($data['checkout']); // remove checkout from data
$obj = json_encode($data); // json encode your data to $obj