Php json_encode不打印数组名称

Php json_encode不打印数组名称,php,datatables,json,Php,Datatables,Json,我没有经验,正在尝试返回数组数组数组,该数组应称为aaData-for 输出应如下所示: { "sEcho": 3, "iTotalRecords": 57, "iTotalDisplayRecords": 57, "aaData": [ [ "Gecko", "Firefox 1.0", "Win 98+ / OSX.2+", "1.7",

我没有经验,正在尝试返回数组数组数组,该数组应称为aaData-for

输出应如下所示:

{
    "sEcho": 3,
    "iTotalRecords": 57,
    "iTotalDisplayRecords": 57,
    "aaData": [
        [
            "Gecko",
            "Firefox 1.0",
            "Win 98+ / OSX.2+",
            "1.7",
            "A"
        ],
        [
            "Gecko",
            "Firefox 1.5",
            "Win 98+ / OSX.2+",
            "1.8",
            "A"
        ],
        ...
    ] 
}
但是我的PostgreSQL 8.4驱动的PHP脚本的实际输出

if (isset($_REQUEST['json'])) {
    $aaData = array();
    while ($row = $sth->fetch(PDO::FETCH_NUM)) {
        array_push($aaData, $row);
    }
    print json_encode($aaData);
}
实际上缺少外括号(类似对象?)和aaData名称:

[
    [ .... ],
    [ .... ],
    [ .... ]
]

如何做到最好?

如果希望将
aaData
作为名称,则需要为数组提供关联索引,如下所示:

if (isset($_REQUEST['json'])) { 
    $arr['aaData'] = array(); 
    while ($row = $sth->fetch(PDO::FETCH_NUM)) { 
        array_push($arr['aaData'], $row); 
    } 
    print json_encode($arr); 
}

如果希望将
aaData
作为名称,则需要为数组提供关联索引,如下所示:

if (isset($_REQUEST['json'])) { 
    $arr['aaData'] = array(); 
    while ($row = $sth->fetch(PDO::FETCH_NUM)) { 
        array_push($arr['aaData'], $row); 
    } 
    print json_encode($arr); 
}

解释问题的根源:变量名,
$aaData
,与数据本身无关。因此,
json\u encode
不会对其进行序列化。

为了解释问题的根源:变量的名称,
$aaData
,与数据本身无关。因此,
json\u encode
不会序列化它。

另一个选项是使用问题中的代码,但更改一行:

print json_encode(array('aaData' => $aaData));

另一种选择是使用问题中的代码,但更改一行:

print json_encode(array('aaData' => $aaData));
给我{“aaData”:null}给我{“aaData”:null}