服务器以下列格式向我发送$ _POST请求:
POST {
array1
{
info1,
info2,
info3
},
info4
}
很自然地,我可以使用$_POST['#info']
非常简单地提取信息#。
但是如何获得array1中的三个信息呢?
我试过$_POST['array1']['info1']
无济于事。
谢谢!
a:2: {s:7:"payload";s:59:"{"amount":25,"adjusted_amount":17.0,"uid":"jiajia"}";s:9:"signature";s:40:"53764f33e087e418dbbc1c702499203243f759d4";}
是POST的序列化版本
答案 0 :(得分:10)
使用索引表示法:
$_POST['array1'][0]
$_POST['array1'][1]
$_POST['array1'][2]
如果您需要迭代变量响应:
for ($i = 0, $l = count($_POST['array1']); $i < $l; $i++) {
doStuff($_POST['array1'][$i]);
}
这或多或少在普通PHP中采用这种形式:
$post = array();
$post['info'] = '#';
$post['array1'] = array('info1', 'info2', 'info3');
所以你可以看到它只是一个数组中的数组,带有数字索引。
注意,如果它是关联数组,则需要使用foreach()
:
foreach ($_POST['array1'] as $key => $val) {
doStuff($key, $val);
}
答案 1 :(得分:2)
尝试
$_POST['array1'][0]
$_POST['array1'][1]
$_POST['array1'][2]
答案 2 :(得分:1)
您只需在$ _POST
上使用foreach循环即可foreach($_POST["array1"] as $info)
{
echo $info;
}
或者您可以通过索引访问它们:
for($i = 0; $i<sizeof($_POST["array1"]); $i++)
{
echo $_POST["array1"][$i];
}