如何在php中的简单数组中包含关联数组?

时间:2017-02-27 07:20:24

标签: php mysql arrays json

我想使用MySql数据库中的数据创建一个JSON文件。

我使用以下代码制作json文件。

<?php

 $con = mysqli_connect('localhost','root','','mydb1');
 $return_arr = array();
 $sql = "select * from questions";
 $res = mysqli_query($con,$sql);
 while($row = mysqli_fetch_assoc($res)){
 $row_array['id'] = $row['id'];
 $row_array['ques'] = $row['ques'];
 $row_array['ans'] = $row['ans'];
 array_push($return_arr,$row_array);
 }
 mysqli_close($con);
 $b = json_encode($return_arr);
 $f = fopen("test.json","w");
 fwrite($f,$b);
 fclose($f);


?>

它给了我以下输出:

[{"id":"1","ques":"New Delhi is capital of India?","ans":"1"},{"id":"2","ques":"India has 5 neighboring countries.","ans":"0"}]

但我想要我的结果:

{"questions" : {"question" : [{"id":"1","ques":"New Delhi is capital of India?","ans":"1"},{"id":"2","ques":"India has 5 neighboring countries.","ans":"0"}]}

这样我就可以在android中正确使用它。我可以这样做吗? 有人可以帮忙吗?

或者你可以帮我解决一下如何在不改变阵列的情况下在android中使用它。

提前致谢。

1 个答案:

答案 0 :(得分:4)

这很简单,只需更改此行

即可
$b = json_encode($return_arr);

到这一行

$b = json_encode(['questions' => ['questions' => $return_arr]]);

当您要保存为JSON文件时,如果要将其另存为键值对,则保存为数组ob对象,然后必须指定键。

如果你想要你的JSON漂亮输出,你也可以使用 JSON_PRETTY_PRINT 作为你的第二个参数

$b = json_encode(['questions' => $return_arr], JSON_PRETTY_PRINT);

http://php.net/manual/en/function.json-encode.php#refsect1-function.json-encode-parameters