PHP解析$ _POST数组?

Yin*_*ang 3 php arrays parsing

服务器以下列格式向我发送$ _POST请求:

POST {
  array1
  {
    info1,
    info2,
    info3
  },
  info4
}
Run Code Online (Sandbox Code Playgroud)

很自然地,我可以非常简单地提取信息#$_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";}
Run Code Online (Sandbox Code Playgroud)

是POST的序列化版本

Jar*_*ish 10

使用索引表示法:

$_POST['array1'][0]
$_POST['array1'][1]
$_POST['array1'][2] 
Run Code Online (Sandbox Code Playgroud)

如果需要迭代变量响应:

for ($i = 0, $l = count($_POST['array1']); $i < $l; $i++) {
    doStuff($_POST['array1'][$i]);
}
Run Code Online (Sandbox Code Playgroud)

这或多或少在普通PHP中采用这种形式:

$post = array();
$post['info'] = '#';
$post['array1'] = array('info1', 'info2', 'info3');
Run Code Online (Sandbox Code Playgroud)

http://codepad.org/1QZVOaw4

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


注意,如果它是一个关联数组,你需要使用foreach():

foreach ($_POST['array1'] as $key => $val) {
    doStuff($key, $val);
}
Run Code Online (Sandbox Code Playgroud)

http://codepad.org/WW7U5qmN