我想生成这样的json格式
假设循环有10个(不定)
for($i=0;$i<10;$i++) 
$tmp1=array("test1"=>"test","test2"=>"test2"....);
$tmp2=array("1"=>$tmp1,"2"=>$tmp2.....);//最后我想生成这样格式的数组
但我不晓得$tmp2这个json数组该如何生成,我使用$tmp2=array($i=>$tmp)发现会被覆盖,有没其它函数呢;

解决方案 »

  1.   

    不太清楚什么意思,难道你想搞二维数组json?
      

  2.   

    晕,难怪取不到数据,我二维的json数据量比较多,超过了我设置的compress_threshold,存储到memcache时压缩了,导致java取不到二维中的json数据。
    如果memcache压缩了数据,通常你们是怎么在冲cache中解压数据的呢?
      

  3.   


    $a =array(array(1,2),array(3,4));
    echo json_encode($a);
    這樣?
      

  4.   

    谢谢大家,二维数组存储json我搞明白了,
    但发现memcached-client.php中可能要改改,java才可以顺利读取压缩过的缓存数据,
    $flags |= MEMCACHE_COMPRESSED;
    有谁可以解释下这句话是什么意思吗?
      

  5.   

    $tmp2=array($i=>$tmp)//这样是会被覆盖的哈
    应该是:$tmp2[$i]=$tmp;
      

  6.   

    json好像是{a:122,b:122}
    这种形式的
      

  7.   


    json_encode()
    json_decode()
      

  8.   

    总结下这个问题,php的数据采用json格式存入memcache,采用json_encode格式存入,格式有[1,2,3...],或者{"1":{....},"2":{...}...}
    当使用java来调用php存储的数据时,由于memcached-client.php这个类存储的数据和java不太一致,需要修改memcached-client.php这个文件中的$flag=0->$flag=32,似乎不能启用数据压缩,目前还不知道java如何得到php压缩的内存数据,java使用json_lib.jar来读取json数据,java读取记得转码.