3

サーバーから$_POSTリクエストが次の形式で送信されます。

POST {
  array1
  {
    info1,
    info2,
    info3
  },
  info4
}

当然のことながら、。を使用して非常に簡単にinfo#を抽出でき$_POST['#info']ます。しかし、array1の3つの情報を取得するにはどうすればよいですか?$_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 に答える