我有一个数组如下
Array
(
[0] => Array
(
[rvoltage_data] => Array
(
[0] => 1466773140000
[1] => 231.81
)
[yvoltage_data] => Array
(
[0] => 1466773140000
[1] => 229.95
)
[bvoltage_data] => Array
(
[0] => 1466773140000
[1] => 231.44
)
)
[1] => Array
(
[rvoltage_data] => Array
(
[0] => 1466773200000
[1] => 231.81
)
[yvoltage_data] => Array
(
[0] => 1466773200000
[1] => 229.95
)
[bvoltage_data] => Array
(
[0] => 1466773200000
[1] => 231.44
)
)
[2] => Array
(
[rvoltage_data] => Array
(
[0] => 1466773500000
[1] => 231.81
)
[yvoltage_data] => Array
(
[0] => 1466773500000
[1] => 231.32
)
[bvoltage_data] => Array
(
[0] => 1466773500000
[1] => 231.44
)
)
)
上面的数组我想转换成下面的数组
[rvoltage_data] => Array (
[0] => Array
(
[0] => 1466773140000
[1] => 231.81
),
[1] => Array
(
[0] => 1466773140000
[1] => 231.81
)
)
[yvoltage_data] => Array (
[0] => Array
(
[0] => 1466773140000
[1] => 231.81
),
[1] => Array
(
[0] => 1466773140000
[1] => 231.81
)
)
[bvoltage_data] => Array (
[0] => Array
(
[0] => 1466773140000
[1] => 231.81
),
[1] => Array
(
[0] => 1466773140000
[1] => 231.81
)
)
可以转换以上格式吗?如果是,请帮助我。我试着解决这个问题,但没有得到任何答案。我不知道如何解决这个问题,请给我建议。
1)好,第一步是重构数组。您可以通过迭代旧$array
的元素并将值重新分配给新数组$result
来实现这一点。
$result = '';
foreach($array as $index => $data)
{
$result['rvoltage_data'][] = $data['rvoltage_data'];
$result['yvoltage_data'][] = $data['yvoltage_data'];
$result['bvoltage_data'][] = $data['bvoltage_data'];
}
var_dump($result);
2)第二步是使用json_encode
将数组输出为JSON,以便您可以将内容作为数据嵌入Highchart Javascript。JSON_NUMERIC_CHECK
用于去掉数字周围的引号,在使用此函数时通常会得到这些引号。
echo json_encode($result, JSON_NUMERIC_CHECK);
3)最后一步:将数据放入Highcharts.
在SO和官方HighCharts网站上有很多例子,例如http://www.highcharts.com/docs/working-with-data/custom-preprocessing # 3
例如,你可以通过jQuerygetJSON()
请求从你的PHP文件"getData.php" "抓取"数据。重要的部分是将传入数据分配给图表的Highcharts选项数组的位置。console.log()
用于在浏览器控制台中显示传入的JSON数据,以便调试。
$.getJSON('getData.php', function(data) {
// debug: show data in browser console
console.log(data);
// assign incoming data to the Highcharts options array of your chart
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});