I'm using highcharts to display some database informations, so when I use one series I haven't any problems, but when I want to add several series on my chart, it's a little bit difficult.
First my PHP script :
foreach ($informationslier as $keyFille => $fille) {
$grafData = array();
foreach ($fille['information'] as $keyInfos => $information) {
$mois = $information['created']->format('m');
$mois = $mois - 1;
$timestamp = strtotime($information['created']->format('j').'-'.$mois.'-'.$information['created']->format('Y'));
//Multiply by 1000 to get seconds in js
$timestamp = $timestamp * 1000;
$grafData[$keyInfos] = array($timestamp, (float)$information['valeur']);
//$grafData[$keyInfos] = implode(', ', $grafData[$keyInfos]);
//$grafData[] = "[Date.UTC(".$information['created']->format('Y').','.$mois.','.$information['created']->format('j')."),".$information['valeur']."]";
}
$tabInformationsData[$keyFille]['name'] = 'Evolution '.$fille['titre'];
$tabInformationsData[$keyFille]['color'] = '#FFA020';
//$tabInformationsData['infos'][$keyFille]['data'] = array();
//$implodeGraf = implode(',', $grafData);
$tabInformationsData[$keyFille]['data'] = $grafData;
}
The php script return me something like this :
Array
(
[0] => Array
(
[name] => Evolution pourcentage
[color] => #FFA020
[data] => Array
(
[0] => Array
(
[0] => 1451084400000
[1] => 17.00
)
[1] => Array
(
[0] => 1451170800000
[1] => 19.00
)
[2] => Array
(
[0] => 1451257200000
[1] => 14.00
)
[3] => Array
(
[0] => 1451343600000
[1] => 6.00
)
)
)
)
I send this array to my view and I do this :
series: {{ graphique | json_encode() | raw }},
But in the HTML, the rendering looks like this and doesn't work :
series: [{
"name":"Evolution pourcentage",
"color":"#FFA020",
"data":[[1451084400000,"17.00"],[1451170800000,"19.00"],[1451257200000,"14.00"],[1451343600000,"6.00"]]
}],
I don't know why it doesn't work... I try to multiply by 1000 the timestamp or not but nothing work. So, how can I display all my series ?
EDITED
Work by passing all date to timestamp and adding (float) before all the values... I edited my post with the response.
Thanks
{{ graphique | json_encode() | raw }}, I still get a problem with two quotes in each of my data arrays, i updated my post.Date.UTC()which is JavaScript function, so it always will be returned as string by PHP. Instead you should calculate timestamp in PHP, so returned will be number. Then there should be:[0] => [1453852800000, 20.00],[1] => [1453939200000, 30.00]... etc.