3

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

4

3 回答 3

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

于 2012-08-18T20:01:59.473 回答
2

尝试

$_POST['array1'][0]
$_POST['array1'][1]
$_POST['array1'][2]
于 2012-08-18T20:02:56.923 回答
1

您可以简单地在 $_POST 上使用 foreach 循环

foreach($_POST["array1"] as $info)
{
    echo $info;
}

或者您可以通过它们的索引访问它们:

for($i = 0; $i<sizeof($_POST["array1"]); $i++)
{
    echo $_POST["array1"][$i];
}
于 2012-08-18T20:02:03.773 回答