jpgrid php json_encode()关联数组

jpgrid php json_encode()关联数组,php,jqgrid,associative-array,json,Php,Jqgrid,Associative Array,Json,我刚开始使用jpgrid。我在php json_encode中遇到了这个问题 根据jqgrid网站的示例,json字符串可以由php代码生成,如下所示: $responce->page = "1"; $responce->total = 1; $responce->records = "1"; $i=1; $amttot=0; $taxtot=0; $total=0; while($i<=10) { $amttot

我刚开始使用jpgrid。我在php json_encode中遇到了这个问题

根据jqgrid网站的示例,json字符串可以由php代码生成,如下所示:

    $responce->page = "1";
    $responce->total = 1;
    $responce->records = "1";

    $i=1; $amttot=0; $taxtot=0; $total=0;
    while($i<=10) {
        $amttot += $row[amount];
        $taxtot += $row[tax];
        $total += $row[total];
        $responce->rows[$i]['id']=strval($i);
        $responce->rows[$i]['cell']=array("123","2012-10-15","name","10000","tax","9999","note");
        $i++;
    }
    $responce->rows = (array)$responce->rows;
    $responce->userdata['amount'] = $amttot;
    $responce->userdata['tax'] = $taxtot;
    $responce->userdata['total'] = $total;
    $responce->userdata['name'] = 'Totals:';
当php json_encode生成json字符串时,行数组被视为关联数组。因此,结果json字符串如下所示:

{"page":"1","total":1,"records":"1",
 "rows":{"1":{"id":"1","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "2":{"id":"2","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "3":{"id":"3","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "4":{"id":"4","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "5":{"id":"5","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "6":{"id":"6","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "7":{"id":"7","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "8":{"id":"8","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "9":{"id":"9","cell":["123","2012-10-15","name","10000","tax","9999","note"]},
         "10":{"id":"10","cell":["123","2012-10-15","name","10000","tax","9999","note"]}},
 "userdata":{"amount":0,"tax":0,"total":0,"name":"Totals:"}}
jqgrid无法处理此json字符串。事实上,jqgrid不会引发任何javascript错误。它只是不呈现表内容。我通过Firebug查看了jqgrid示例网站上的json字符串。看起来是这样的:

{"page":"1","total":2,"records":"13",
 "rows":[{"id":"13","cell":["13","2007-10-06","Client 3","1000.00","0.00","1000.00",null]},
         {"id":"12","cell":["12","2007-10-06","Client 2","700.00","140.00","840.00",null]},
         {"id":"11","cell":["11","2007-10-06","Client 1","600.00","120.00","720.00",null]},
         {"id":"10","cell":["10","2007-10-06","Client 2","100.00","20.00","120.00",null]},          
         {"id":"9","cell":["9","2007-10-06","Client 1","200.00","40.00","240.00",null]},
         {"id":"8","cell":["8","2007-10-06","Client 3","200.00","0.00","200.00",null]},
         {"id":"7","cell":["7","2007-10-05","Client 2","120.00","12.00","134.00",null]}, 
         {"id":"6","cell":["6","2007-10-05","Client 1","50.00","10.00","60.00",""]},
         {"id":"5","cell":["5","2007-10-05","Client 3","100.00","0.00","100.00","no tax at all"]},
         {"id":"4","cell":["4","2007-10-04","Client 3","150.00","0.00","150.00","no tax"]}],
        "userdata":{"amount":3220,"tax":342,"total":3564,"name":"Totals:"}}
我无法理解php示例代码如何使用associate数组在json字符串中生成这样的数组obj。我使用的是PHP5.4

我可以在jqgrid或php中更改什么来实现这一点?我很惊讶没有其他人有这个问题。我可能遗漏了一些相当明显的东西

谢谢


casbby

问题是由PHP中如何生成响应数组对象引起的。最初在循环中创建数组时,我从1而不是0开始索引。 响应->行[i] 这导致php将响应数组视为关联数组而不是顺序数组。因此php将name-value对象放在响应对象中(当我试图创建一个非命名对象数组时)

解决方案是确保数组索引是连续的

{"page":"1","total":2,"records":"13",
 "rows":[{"id":"13","cell":["13","2007-10-06","Client 3","1000.00","0.00","1000.00",null]},
         {"id":"12","cell":["12","2007-10-06","Client 2","700.00","140.00","840.00",null]},
         {"id":"11","cell":["11","2007-10-06","Client 1","600.00","120.00","720.00",null]},
         {"id":"10","cell":["10","2007-10-06","Client 2","100.00","20.00","120.00",null]},          
         {"id":"9","cell":["9","2007-10-06","Client 1","200.00","40.00","240.00",null]},
         {"id":"8","cell":["8","2007-10-06","Client 3","200.00","0.00","200.00",null]},
         {"id":"7","cell":["7","2007-10-05","Client 2","120.00","12.00","134.00",null]}, 
         {"id":"6","cell":["6","2007-10-05","Client 1","50.00","10.00","60.00",""]},
         {"id":"5","cell":["5","2007-10-05","Client 3","100.00","0.00","100.00","no tax at all"]},
         {"id":"4","cell":["4","2007-10-04","Client 3","150.00","0.00","150.00","no tax"]}],
        "userdata":{"amount":3220,"tax":342,"total":3564,"name":"Totals:"}}