PHP解析$ _POST数组?

时间:2012-08-18 19:57:55

标签: php arrays parsing

服务器以下列格式向我发送$ _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的序列化版本

3 个答案:

答案 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');

http://codepad.org/1QZVOaw4

所以你可以看到它只是一个数组中的数组,带有数字索引。


注意,如果它是关联数组,则需要使用foreach()

foreach ($_POST['array1'] as $key => $val) {
    doStuff($key, $val);
}

http://codepad.org/WW7U5qmN

答案 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];
}