(额不知道应该发php区还是js区还是ajax区……)比如有这样一个数组$arr = array();$arr[1][1][aaa]=1;
$arr[2][2][bbb]=5;
$arr[3][1][aaa]=-3;
$arr[4][2][ccc]=-6;
$arr[5][1][ddd]=-44;然后用json_encode编码之后,作为调用js函数的参数传递给js,但是在js处就没法用alert(a[1][1]['aaa'])来取得对应的值(chrome的调试器提示Uncaught SyntaxError: Unexpected number)。经过试验,同样的方法可以一维数组,请问是json_encode本身就不能传递多维数组还是有其他什么原因?

解决方案 »

  1.   

    alert(a['1']['1']['aaa']);你看一下 json_encode 的结果就知道了.
      

  2.   

    没有问题呀
    $arr = array();$arr[1][1][aaa]=10;
    $arr[a][b][bbb]=5;$p = json_encode($arr);echo <<< JS
    <script>
    var a = $p;
    document.write('<br>按下标:' + a[1][1]['aaa']);
    document.write('<br>按名称:' + a['1']['1']['aaa']);
    document.write('<br>按对象:' + a.a.b.bbb);
    </script>
    JS;
    按下标:10
    按名称:10
    按对象:5
      

  3.   


    可能跟PHP版本有关系.我的 5.2.1.1 json出来的结果是 {..."1":{"1":{"aaa":10}}...}  
      

  4.   

    试试 eval(a) 再alert(a[1][1]['aaa'])
      

  5.   

    我用了这个,什么也显示不出来。
    chrome调试器显示Uncaught TypeError: Cannot read property 'aaa' of undefined