转换PHP数组以在Javascript中使用

时间:2013-03-13 23:22:34

标签: php javascript jquery

我有一个多维PHP数组,我想插入到Javascript图形库中。如何将PHP数组插入到创建Highcharts.Chart对象的JS代码中?

我注意到JS变量series包含一个对象数组,而在PHP中,一切都在数组中。

Jsfiddle: http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/

PHP数组 print_r($array)的结果)

Array
(
    [boston] => Array
        (
            [0] => 4623
            [1] => 18094
            [2] => 12176
            [3] => 6521
            [4] => 4559
            [5] => 6450
            [6] => 5814
        )

    [chicago] => Array
        (
            [0] => 1240
            [1] => 9923
            [2] => 9546
            [3] => 4568
            [4] => 3384
            [5] => 4797
            [6] => 4469
        )

    [philadelphia] => Array
        (
            [0] => 0
            [1] => 1529
            [2] => 4063
            [3] => 838
            [4] => 547
            [5] => 1443
            [6] => 1209
        )
)

Javascript数组示例:

chart = new Highcharts.Chart({
   series: [{
        name: 'boston',
        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
    }, {
        name: 'chicago',
        data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
    }, {
        name: 'philadelphia',
        data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
    }]
});

3 个答案:

答案 0 :(得分:0)

json_encode($ array)将为您提供一个javascript可解析数组。

答案 1 :(得分:0)

这样的事情应该将您的数据转换为您在js中期望的格式:

<?php
$newData = array();
foreach($data as $city=>$values){
    $newData[] = array('name'=>$city,'data'=>$values)
}

echo json_encode($newData);

答案 2 :(得分:-1)

这就是我开始组织一些数据的方式:

<?
$data[boston] = array(1,2,3,4);
$data[new_york] = array(6,12,18,24);
print_r($data);

foreach ($data as $key => &$value) {
  echo "name: $key \n";
  echo "data: [" . implode(",", $value) . "]\n";
}
?>