我正在从highcharts实施图表。显示它所需的数据需要采用.json格式。
它有以下方案:
[
[
1167609600000,
21
]
]
我通过php脚本从mysql数据库获取数据:
<?php
//OPEN CONNECTION TO DB
$connection = mysqli_connect('localhost','abc','def','ghi') or die("Error " . mysqli_error($connection));
//SELECT ROWS NEEDED
$sql = "SELECT test, temp FROM database";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));
//CONVERT MYSQL TO PHP ARR
$json_array= array();
while ($row= mysqli_fetch_assoc($result))
{
$json_array[]= $row;
}
//WRITE DATA TO FILE
$fp = fopen('temps.json', 'w');
fwrite($fp, json_encode($json_array, JSON_PRETTY_PRINT));
fclose($fp);
//DISCONNECT FROM DB
mysqli_close($connection);
?>
现在出现了我的问题。我的脚本生成的数据如下所示:
[
{
"a": "2",
"price": "15"
}
]
首先,我不知道如何在我的sql查询中压制每个结果的列名。其次,我不明白为什么我的脚本创建花括号而不是方括号。第三,它为什么使用“。”为每一个价值。
有人能帮帮我吗?
谢谢
答案 0 :(得分:0)
您将数组推入一个关联数组,因此密钥将保留并显示在您的JSON中:
while ($row = mysqli_fetch_assoc($result))
{
$json_array[] = [ (int)$row['a'], (int)$row['price'] ];
}
输出:
[
[
2,
15
]
]
另一种方法是使用array_values()
:
while ($row = mysqli_fetch_assoc($result))
{
$vals = array_values($row);
$vals = array_map('intval', $vals);
$json_array[] = $vals;
}