我对php相当陌生。我试图翻译一个经典的asp vbscript函数到php。它循环遍历request.form
值并生成一个字符串。我找到了一篇关于循环遍历$_REQUEST
的文章。
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
这是post:
表单中的典型数据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':}
谁能给我指个正确的方向?
如果您执行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