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