Я использую highcharts для отображения информации о базе данных, поэтому, когда я использую одну серию, у меня нет никаких проблем, но когда я хочу добавить несколько сериалов на свой график, это немного сложно.Highcharts добавить несколько серий с массивом PHP
Первый мой PHP скрипт:
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;
}
Сценарий PHP вернуть мне что-то вроде этого:
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
)
)
)
)
Я посылаю этот массив на мой взгляд, и я делаю это:
series: {{ graphique | json_encode() | raw }},
Но в HTML рендеринг выглядит так и не работает:
series: [{
"name":"Evolution pourcentage",
"color":"#FFA020",
"data":[[1451084400000,"17.00"],[1451170800000,"19.00"],[1451257200000,"14.00"],[1451343600000,"6.00"]]
}],
Я не знаю, почему это не работает ... Я пытаюсь умножить на 1000 временную метку или нет, но ничего не работает. Итак, как я могу отобразить все свои серии?
EDITED
Работа пропускания всех дат метки и добавления (поплавок), прежде чем все значения ... Я редактировал свой пост с ответом.
Благодаря
Разбор JSON массива. См. Http://stackoverflow.com/questions/18064226/how-to-add-php-array-to-js-array-in-highcharts –
Эй, спасибо, но я нашел решение: '{{graphique | json_encode() | raw}} ', я все еще получаю проблему с двумя кавычками в каждом из своих массивов данных, я обновил свой пост. – Remi
Удаление котировок будет недостаточным. Вы пытаетесь использовать 'Date.UTC()', который является функцией JavaScript, поэтому он всегда будет возвращен как строка PHP. Вместо этого вы должны вычислять временную метку в PHP, поэтому возвращенный будет числом. Тогда должно быть: '[0] => [1453852800000, 20.00]', '[1] => [1453939200000, 30.00]' ... и т. Д. –