2011-08-19 65 views
0

我很难将我的php数组转换为json对象。php到json结构

Array(
    [28] => Array(
     [0] => Array(
      [0] => 1 
      [1] => 5 
     ) 
     [1] => Array(
      [0] => 1 
      [1] => 18 
     ) 
     [424] => Array(
      [0] => Array(
       [0] => 1 
       [1] => 5 
      ) 
      [1] => Array(
       [0] => 1 
       [1] => 18 
      ) 
     ) 
    ) 
) 

后,我json_encode在jQuery的这个结构我用的。每个并获得两个数组,但我似乎无法抓住[28]和[424]。有什么想法吗?

$.each(data, function(i, val) { 
    console.log(val); // NAME ?? 
    console.log(data[i][0]); // LIST 1 
    console.log(data[i][1]); // LIST 2 
}); 
+1

'console.log(i)'产生了什么? – afuzzyllama

回答

1

JSON将键编码为字符串,这意味着jQuery正在寻找一个字符串,而不是一个整数。尝试使用字符串访问数组。

+0

'json_encode'(没有给出的标志)会将数组键作为对象成员名称进行编码,而不是数组键。 – hakre

4
$.each(data, function(i, val) { 
    console.log(i); // name 
    console.log(val); //array 
}); 
0

尝试此

$.each(data, function(i, val) { 
    //First iterration "this" will point to '28' array 
    //Second iterration "this" will point to '424' array 

    //You can use it like this, this[i][0] 

}); 
0

PHP的数组键28424将在回调函数内的JavaScript变量i来表示。

查看$.eachDocs的文档,他们会详细解释它。

+0

足够简单,例子使用'我',我认为它是一个整数时间。谢谢! – user877756