我正在尝试为高清图创建一个多数组,如您所见HighChart Demo
用于从数据库中检索数据的PHP代码。
$sql = <<< SQL
SELECT TOP (
[miles]
,[status]
FROM [database].[dbo].[portal]
SQL;
$result = $conn->prepare($sql);
$result->execute();
$rowCount = $result->fetchColumn();
$dataset = array('name' => 'Naam');
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$data[] = $row['automillage'];
}
array_push($dataset, $data);
echo json_encode($dataset,JSON_NUMERIC_CHECK);
我的数组的当前输出是
{
0: [
1000,
2297,
1500,
3301,
],
name: "Naam"
}
但我真正想要的是从数据开始而不是从0开始:
{
Data: [
1000,
2297,
1500,
3301,
],
name: "Naam"
}
我想知道如何在一个阵列中获得两个数据系列。
Tnx到@bassxzero我现在有正确的输出。
但我想再做一件事。将两个数据系列放在一个数组中,如例:
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
当我尝试对两个数组进行json_decode时,编译代码时出错。
- 错误代码为:json_decode()期望参数1为字符串,给定数组
$dataset['Data'] = $data;
$dataset2['Data'] = $data2;
$join[] = json_decode($dataset, true);
$join[] = json_decode($dataset2, true);
echo json_encode($join,JSON_NUMERIC_CHECK);
之后我想用json更新它。我的代码是这样的:
var chart = new Highcharts.chart('container', {
chart: {
type: 'line'
},
title: {
text: 'Monthly Average Temperature'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
series: [{
name: 'Tokyo',
data: ''
}, {
name: 'London',
data: ''
}]
});
function chartUpdate() {
$.getJSON("dbcon/connection - Copy.php", function (dataset) {
chart.update({
series: [{
data: dataset
}]
});
});
} //end chartUpdate
答案 0 :(得分:2)
注意: - array_push()
创建数字索引,而您需要关联索引。
所以,而不是: -
array_push($dataset, $data);
做的: -
$dataset['Data'] = $data;
在一个数组输出中传递两个数组:
$dataset['data'] = $data;
$dataset2['data'] = $data2;
$join[] = json_decode(json_encode($dataset), true);
$join[] = json_decode(json_encode($dataset2), true);
echo json_encode($join,JSON_NUMERIC_CHECK);
答案 1 :(得分:1)
您应该使用密钥添加数据,而不是仅将其推送到数组。
$dataset['Data'] = $data
编辑:@bassxzero在评论中打败了我。
答案 2 :(得分:1)
首先感谢您的回答。
在正确的输出中获取数组的答案是低于bassxzero:
Change: array_push($dataset, $data); to $dataset['Data']= $data;
在一个数组输出中传递两个数组的答案:
$dataset['data'] = $data;
$dataset2['data'] = $data2;
$join[] = json_decode(json_encode($dataset), true);
$join[] = json_decode(json_encode($dataset2), true);
echo json_encode($join,JSON_NUMERIC_CHECK);