2013-03-26 119 views
1

我正在使用DataTables,它需要JSON对象的特定格式才能填充表格。php为DataTables创建和填充多维数组

它应该是这样的:

{"aaData": [ 
     [ "Trident", "Internet Explorer 5.1", "Win 95+", 4, "X" ], 
     [ "Trident", "Internet Explorer 5.0", "Win 95+", 5, "C" ], 
     [ "Trident", "Internet Explorer 5.5", "Win 95+", 5.5, "A" ], 
     [ "Trident", "Internet Explorer 6.0", "Win 98+", 6, "A" ], 
     [ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ] 
} 

我已经试过百不同的方式,但不能得到的东西看起来像上面等数据表不接受它。

这是我最新的尝试之一:

$aaData["aaData"] = array(array()); 
$i=0; 
while($r= mysql_fetch_assoc($sql)){ 
    $aaData[$i][] = $r["data1"]; 
      $aaData[$i][] = $r["data2"] ; 
      $aaData[$i][] = $r["data3"] ; 
    $aaData[$i][] = $r["data4"] ; 
      $aaData[$i][] = $r["data5"] ; 

      $i++; 
} 
$aaData=json_encode($aaData); 
echo $aaData; 

这给我来自服务器的JSON响应(如通过Firebug的验证),看起来像这样:

{"aaData":[ 
[]], 
"0":["data1","data2","data3","data4","data5"], 
"1":["data11","data21","data31","data41","data51"], 
etc.....] 
} 

所以,我做不需要键(0,1 ...)也不需要“[]]”东西。 我确实看过类似的帖子,在这里和其他地方,但没有找到任何帮助我的东西。 我该如何摆脱它们? 感谢您的协助。

回答

1

使用本

$aaData["aaData"] = array(); 
//$i=0; 
while($r= mysql_fetch_assoc($sql)){ 
    $arr= array(); 
    $arr[] = $r["data1"]; 
    $arr[] = $r["data2"] ; 
    $arr[] = $r["data3"] ; 
    $arr[] = $r["data4"] ; 
    $arr[] = $r["data5"] ; 
    array_push($aaData["aaData"],$arr); 
     //$i++; 
} 
$aaData=json_encode($aaData); 
echo $aaData; 

工作示例http://codepad.viper-7.com/gk2DO3

+0

为什么downvote ??? – 2013-03-26 12:16:37

+1

只是打字事故。我仍在验证您的代码。请原谅。谢谢。 – BernardA 2013-03-26 12:23:12

+0

Yogesh。谢谢,但那也行不通。在这里它给了我什么。 { “aaData”:[], “0”:[ “DATA1”]中, “1”:[ “DATA2”], “2”:[ “DATA3”], “3”:[ “DATA4”],“4 “:[” DATA5 “],” 5 “:[” DATA11 “],” 6 “:[” data21 “],” 7 “:[” data31 “],” 8 “:[” data41 “],” 12 “:[”data51“] etc .... – BernardA 2013-03-26 12:25:23