2013-03-26 116 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