如何使用Highchart在json中转换多个数组?

时间:2016-06-28 13:48:28

标签: php arrays

我有一个数组如下

    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 个答案:

答案 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);
});