Php json_encode不打印数组名称
我没有经验,正在尝试返回数组数组数组,该数组应称为aaData-for 输出应如下所示: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",
{
"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}