通过多维数组的jQuery循环

通过多维数组的jQuery循环,jquery,arrays,json,multidimensional-array,each,Jquery,Arrays,Json,Multidimensional Array,Each,我在PHP文件中有一个名为$array的2d数组,其中包含id、msg和时间戳 然后创建一个多维数组,并从AJAX调用输出为JSON: $ok = 1; $error = null; echo JSON_ENCODE(array('ok'=>$ok, 'err'=>$error, 'arr'=>$array)); 我正在尝试循环遍历名为arr的嵌套数组,我无法理解,我尝试了什么: $.each(data,function(i,index){ $('#msg_apnd

我在PHP文件中有一个名为
$array
的2d数组,其中包含
id
msg
时间戳

然后创建一个多维数组,并从AJAX调用输出为JSON:

$ok = 1;
$error = null;

echo JSON_ENCODE(array('ok'=>$ok, 'err'=>$error, 'arr'=>$array));
我正在尝试循环遍历名为
arr
的嵌套数组,我无法理解,我尝试了什么:

$.each(data,function(i,index){
    $('#msg_apnd').append(data[index].midt + data[index].msg);
});
当我需要它在嵌套的
arr
数组中循环时,它只在数据数组中循环,因此只有一行,所以我尝试了以下方法:

$.each(data,function(i,index){
    $.each(i,function(i2,index2){
        $('#msg_apnd').append(arr[index].midt + arr[index].msg);
    });
});

我有点困了,在别处找不到合适的答案。我需要jQuery代码在AJAX响应中循环通过嵌套的
arr
数组。

您可以使用成员操作符将
.arr
作为目标,因为
数据
是一个对象

$.each(data.arr,function(idx, val){
        $('#msg_apnd').append(val.midt + val.msg);
});

此外,回调将当前项的索引作为第一个参数接收,将当前项作为第二个参数接收。成功回调应如下所示:

function (response) {
  console.log(response.ok, response.err, response.arr);
  $.each(response.arr, function(i, v){
    $('#msg_apnd').append(v.midt + v.msg);
  });
}