0

I have a multidimensional PHP array that I want to insert into a Javascript graphing library. How do I insert the PHP array into the JS code that creates the Highcharts.Chart object?

I notice that JS variable series contains an array of objects, while in PHP everything is in array.

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

PHP Array (Result of 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 Array Example:

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]
    }]
});
5
  • 1
    Start by encoding it as JSON. Commented Mar 13, 2013 at 23:24
  • 2
    If only there were some kind of notation for JavaScript objects... Bah, that's crazy talk! Commented Mar 13, 2013 at 23:24
  • I notice that JS variable series contains an array of objects, while in PHP everything is in array. Commented Mar 13, 2013 at 23:24
  • stackoverflow.com/questions/1387149/… Commented Mar 13, 2013 at 23:24
  • @Nyxynyx: Not so, your JS has shows an object literal, that has a property series, that references an array of objects. Even so: in JS, arrays are objects: Object.getPrototypeOf(Array.prototype);. Also: What's the difference? Aren't arrays some form of objects, too? Apart from the new keyword, in PHP we tend to write $var = array();, which constructs an array. Nowadays, of course, we can also write [] in both PHP and JS, or cast an array to a stdClass instance... Arrays, Objecs... it shouldn't matter that much to you Commented Mar 13, 2013 at 23:37

3 Answers 3

0

something like this should convert your data to the format you are expecting in js:

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

echo json_encode($newData);
0

json_encode($array) will give you a javascript parsable array.

-1

This is how I'd start organizing some of the data:

<?
$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";
}
?>

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.