4

我将一些 JSON 发布到 PHP 脚本中。我通过一个 jQuery ajax 调用来做到这一点。我认为我的 ajax 部分工作得很好。但这是我正在使用的代码:

var testjson = '{"statistics":[{"player_id":"12","team_id":"8","points":"19"},{"player_id":"9","team_id":"8","points":"7"}],"teams":[{"homename":"Lakers","awayname":"Heat","webid":"48","hid":"49","aid":"48"}]}';

function postGameStats() {
jQuery.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "ajax-url.php",
    data: {"data":JSON.stringify(testjson)},
    success : function(data){
        alert(data);
    }
});
}

在我的 PHP 页面上,我想遍历解码的 JSON 并将数据存储在我的数据库中。一旦我从数组中取出值,我就可以存储它们。但我目前无法将它们从阵列中取出!我似乎找不到我能理解的在 PHP 中访问多维数组的解释。到目前为止,这是我的 PHP:

$finally = json_decode($_POST['data'], true);

$size = count($finally[1]);
$i = 0;
while ($i < ($size)) {
  echo $finally[$i].['statistics'].[$i].['player_id']; 
$i = $i + 1;
}

谁能指出我如何访问数组中的值的正确方向?提前非常感谢!

4

3 回答 3

2

好吧,当它由键(关联数组)而不是数字索引时,您无法访问这种数组,因此您需要使用foreach()

foreach($myarray as $key => $val){
   echo $key." ".$val['innerkey'];
}

所以在你的情况下它会是这样的

   foreach($finally['statistics'] as $key => $val){
      echo $val[$key]['player'];
   }

但当然你可以使用print_r()你的数组,这样你就会知道如何访问它

print_r($finally);

http://php.net/manual/en/control-structures.foreach.php

http://php.net/manual/en/function.print-r.php

http://php.net/manual/en/language.types.array.php

于 2013-06-06T01:51:50.250 回答
0

stringify 的问题是斜线执行以下操作将解决问题:

$finally = json_decode(stripslashes($_POST['data']), true);

让我知道它是否成功。

于 2013-06-06T01:53:28.537 回答
0

上面的答案对我帮助很大。但最终起作用的是解析如下:

echo $finally["statistics"][1]["player_id"];
于 2013-06-06T22:28:56.883 回答