php为数据表创建和填充多维数组


php create and populate multidimensional array for DataTables

我正在使用数据表,它需要JSON对象的特定格式,以便填充表。

应该是这样的:

{"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" ]
}

我已经尝试了数百种不同的方法,但无法得到看起来像上面的东西,所以datatable不接受它。

这是我最近的一次尝试:

$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…)也不需要"[]]"之类的东西。我确实在这里和其他地方看到了类似的帖子,但没有找到任何能帮助我解决这个问题的东西。我怎样才能摆脱它们呢?谢谢你的帮助。

使用

$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