使用JSON将多维数组从PHP传递到Javascript

3
我的php脚本会返回一个JSON编码的字符串。
我不知道如何在Javascript中使用这个数组?
最终目标是通过JavaScript循环遍历多维数组来提取值(价格)...
我已经成功让JavaScript接收到了编码后的字符串(通过屏幕打印进行测试),但我不确定如何实际使用数组,或者如何像在PHP中那样循环遍历它...
我基本上需要做的是将PHP代码转换为JavaScript代码。
 foreach ($array as $item => $value){

    foreach ($value as $item2 => $value2){

      //peform action on $value2;
    }
}

感谢您的帮助。
Oz
2个回答

2
使用jQuery,您可以像这样迭代JSON对象:
$.each(obj, function(key, value) {
    if ($.type(value) == "object") {
       $.each(value, function(key, value) {
           // value would be $value2 here
       })
    }
});

此外,如果您从PHP获取到一个JSON编码的字符串,您可以使用http://api.jquery.com/jQuery.parseJSON/来获取一个JSON对象。
var obj = jQuery.parseJSON(stringFromPhp);

你也可以直接使用$.getJSON() (http://api.jquery.com/jQuery.getJSON/) 在回调函数中自动获取json对象。
编辑:缺少一个括号。

这个对我也有效 :),不过我更喜欢上面的答案,因为它更接近我的母语中 foreach 的结构。无论如何,感谢您的时间,让我了解了一种 jQuery 方法。 :) - shane
没问题 :) 对我来说,这个版本更加干净和稳健,但是选择权在你 ;) - Robin

2
假设您已经声明了变量arrayFromPhp,您可以使用简单的嵌套for循环:
for(var i = 0, l = arrayFromPhp.length; i < l; i++) {
  for(var j = 0, l2 = arrayFromPhp[i].length; j < l2; j++) {
    var value = arrayFromPhp[i][j];
    //Do stuff with value
  }
}

+1 我猜他不知道 array[i][j]; 是可行的。 - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接