使用Json_encode,从Mysql更改数组名称

时间:2014-02-10 10:48:54

标签: php json

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

如果我打印此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;
            }

3 个答案:

答案 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);

您需要创建一个临时数组并按下您想要的valuesindex,然后将其编码为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);
 }