【发布时间】:2017-06-27 07:38:00
【问题描述】:
我正在尝试从一个简单的 mysqli_query 创建一个 .json 文件。我试过这个:
$res=mysqli_query($link, "SELECT * FROM Teams");
$i=0;
while ($row =mysqli_fetch_assoc($res)) {
$jshteam[$i]=$row['shteam'];
$jbyteam[$i]=$row['byteam'];
$jcountry[$i]=$row['country'];
$arrteams[$i]= array("".$jshteam[$i].""=>"country"=>"".$jcountry[$i]."","byteam"=>"".$jbyteam[$i].""]);
$i++;
}
$json_data= json_encode(array_merge_recursive($arrteams));
file_put_contents('json/teams.json', $json_data);
这样做时,teams.json 的结果如下(前两个元素):
[{"TEA":{"country":"Turkey","byteam":"TeamName1"}},{"VIS":{"country":"Germany","byteam":"TeamName2"}}]
我不喜欢字符串开头和结尾处的 [] 东西。如果我将这行代码更改如下:
$json_data= json_encode(array_merge_recursive($arrteams[0],$arrteams[1]));
file_put_contents('json/teams.json', $json_data);
...然后我得到了我想要的:
{"TEA":{"country":"Turkey","byteam":"TeamName1"},"VIS":{"country":"Germany","byteam":"TeamName2"}}
问题是我无法像第二种形式那样手动生成array_merge_recursive,因为我不知道查询中有多少结果。就像:
$json_data= json_encode(array_merge_recursive($arrteams[0],$arrteams[1],$arrteams[2]....$arrteams[?] ));
你会怎么做?
【问题讨论】: