如何更改从数据库获取的数组名称:例如
如果我打印此json_encode($rows)
我有:
{"access":"MTAPI"}
但是,在Json格式中,我希望"访问" 被称为"键入" 。
我怎么能实现这个目标?
其次,我如何将更多数据推送到数组中以显示:
{"access":"MTAPI", "alias":"result"}
我试过但它很乱:
array_push($rows, "alias", "result");
第三,如果我有一个完整的结构将需要执行多个sql语句来构建它,我应该使用一个巨大的数组,适合所有内容然后传递给json_encode?或者json_encode是否会进行某种连接?
$row
$sth = $dbh->query("SELECT access FROM NodeAttributes WHERE Node_ID = '$nodeid[$i]'")or die(mysql_error());
$rows = array();
while($r = $sth->fetch(PDO::FETCH_ASSOC)) {
$rows[] = $r;
}
答案 0 :(得分:2)
但是,在Json格式中,我希望“访问”被称为“类型”。
我怎么能实现这个目标?
取消设置"access"
密钥并在其位置设置"Type"
:
$rows['Type'] = $rows['access'];
unset($rows['access']);
echo json_encode($rows);
其次,我如何将更多数据推送到数组中以显示为
只需添加额外的键/值对:
$rows['alias'] = 'result';
array_push
是一个很少有合法用例的函数,不喜欢它。
第三,如果我有一个完整的结构将多个sql语句 我需要执行它来构建它,如果我使用一个巨大的阵列,适合 那么一切都传递给json_encode?或者json_encode做了些什么 那种串联?
目前尚不清楚你的意思。 “巨型阵列”含糊地听起来像是最简单的实用解决方案,但没有说明就没有多少说明。
答案 1 :(得分:0)
您可以将结果存储到您自己的变量中,然后将其编码为json。
$output = array( 'Type' => $row[0]['access'] );
json_encode($output);
答案 2 :(得分:0)
试试这个
$arr_temp['Type'] = $rows['access'];
$arr_temp['alias'] = "result";
echo json_encode($arr_temp);
您需要创建一个临时数组并按下您想要的values
和index
,然后将其编码为json
更新2:
您可以在查询中使用此功能,例如:>
$sth = $dbh->query("SELECT access FROM NodeAttributes WHERE Node_ID = '$nodeid[$i]'")or die(mysql_error());
$rows = array();
while($r = $sth->fetch(PDO::FETCH_ASSOC)) {
$rows['Type'] = $r['access'];
$rows['alias'] = "result";
echo json_encode($rows);
}