我有一个数组如下
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
)
)
是否可以转换以上格式。如果是的话请帮助我。我试着解决这个问题,但没有得到任何答案。我不知道如何解决这个问题,请建议我。
答案 0 :(得分:0)
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
您可以通过PHP文件中的jQuery getJSON()
请求“抓取”数据:“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);
});