我正在读取mysql数据库中的值,然后通过以下代码导出到JSON
<?php
require_once 'includes/global.inc.php';
$query = "SELECT * FROM `chart_sales` ORDER BY id LIMIT 0 , 100";
$result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
// get data and store in a json array
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$ph[] = array(
'timestamp' => $row['timestamp'],
'ph' => $row['ph']
);
}
echo json_encode($ph);
?>
这就像魅力一样,给我以下输出:
[{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}]
现在我的问题来了。我想将JSON
值转换为数组,以便我可以将数据绘制到我的图表中。
这是绘制图表的代码:
var d2 = [ [1383755099000, 1], [1383755299000, 1.5], [1383755999000, 1] ];
var sales_charts = $('#sales-charts').css({'width':'100%' , 'height':'220px'});
$.plot("#sales-charts", [
{ label: "pH", data: d1 },
{ label: "EC", data: d2 },
]
如您所见,到目前为止,我已手动插入var d2的数组。所以你可以看到阵列是如何布局的。 不幸的是,我使用JSON的经验很少。所以,如果您知道在json文件中读取并将其转换为可用数组的方法,请告诉我。
答案 0 :(得分:0)
这是一个快速解决方案。感谢@fruityp提醒我。
$json = '[{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}]';
$array = json_decode($json,true);
$temp = array();
foreach($array as $a){
array_push($temp,'['.$a['timestamp'].','.$a['ph'].']');
}
$imp = implode(',',$temp);
$d2 = '['.$imp.']';
echo $d2;
答案 1 :(得分:0)
您可以使用以下代码将JSON对象转换为数组:
d2 = [{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}];
var result = [];
for (var i in d2) {
result[i] = [];
result[i]['timestamp'] = d2[i].timestamp;
result[i]['ph'] = d2[i].ph;
}