Php 使用Json_encode,将数组名从Mysql更改为

Php 使用Json_encode,将数组名从Mysql更改为,php,json,Php,Json,如何更改从数据库获取的数组名称:例如 如果我打印这个json\u encode($rows) 我有: {"access":"MTAPI"} 但是,在Json格式中,我希望“access”被称为“Type” 我怎样才能做到这一点 其次,我如何将更多数据推送到数组中,使其显示为: {"access":"MTAPI", "alias":"result"} 我试过了,但是很乱: array_push($rows, "alias", "result"); 第三,如果我有一个完整的结构,那么我需要执行

如何更改从数据库获取的数组名称:例如

如果我打印这个
json\u encode($rows)

我有:

{"access":"MTAPI"}
但是,在Json格式中,我希望“access”被称为“Type”

我怎样才能做到这一点

其次,我如何将更多数据推送到数组中,使其显示为:

{"access":"MTAPI", "alias":"result"}
我试过了,但是很乱:

array_push($rows, "alias", "result");
第三,如果我有一个完整的结构,那么我需要执行多个sql语句来构建它,我是否应该使用一个巨大的数组,将所有内容放入其中,然后传递给json_encode?或者json_编码做了某种连接

$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;
            }

您可以将结果存储到自己的变量中,然后将其编码为json

$output = array( 'Type' => $row[0]['access'] );

json_encode($output);
但是,在Json格式中,我希望“access”被称为“Type”

我怎样才能做到这一点

取消设置
“access”
键,并将
“Type”
设置在其位置:

$rows['Type'] = $rows['access'];
unset($rows['access']);
echo json_encode($rows);
第二,如何将更多数据推入数组中,使其看起来像这样

只需添加额外的键/值对:

$rows['alias'] = 'result';
array\u push
是一个很少有合法用例的函数,我不喜欢它

第三,如果我有一个完整的结构,那么将有多个sql语句 我需要表演来建造它,我应该使用一个巨大的阵列吗 然后所有内容都传递到json_encode?或者json_编码做了些什么 一种连接

不清楚你的意思。“巨型阵列”听起来似乎是最简单实用的解决方案,但没有说明什么。

试试这个

$arr_temp['Type'] = $rows['access'];
$arr_temp['alias'] = "result";

echo json_encode($arr_temp);
您需要创建一个临时数组,并推送所需的
索引
,然后将其编码为
json

更新2:

您可以在查询中这样使用-->


谢谢你的回复。我尝试了重命名,结果是:
{“0”:{“access”:“SNMP”},Type:null}
然后当我尝试添加额外的键/值对时,我得到了以下输出:
{“0”:{“access”:“SNMP”},别名:““result”}
输出是否按照我上面提供的示例解释sae?关于最后一段,我打算构建一个类似这样的结构,所以我想问它是否是一个大数组,其中包含子数组。@BeginingPerl:看起来您的意思是编写
$row
,而不是原始问题中的
$rows
;您给出的输出不是
json_encode
的全部输出,对吗?这是我的输出:
{“Type”:null,“alias”:“result”}
。问题出在我的代码中吗?这完全可以用“access”替换Type,但是access的值现在为null。我可以知道$rows的值吗。请在此处输入$rows的值。php代码:
print\r($rows)。基于此,我可以为您提供解决方案`Array([0]=>Array([access]=>SNMP))`就是这样的
 $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);
 }