2016-01-28 2 views
1

Я использую 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

Работа пропускания всех дат метки и добавления (поплавок), прежде чем все значения ... Я редактировал свой пост с ответом.

Благодаря

+1

Разбор JSON массива. См. Http://stackoverflow.com/questions/18064226/how-to-add-php-array-to-js-array-in-highcharts –

+0

Эй, спасибо, но я нашел решение: '{{graphique | json_encode() | raw}} ', я все еще получаю проблему с двумя кавычками в каждом из своих массивов данных, я обновил свой пост. – Remi

+2

Удаление котировок будет недостаточным. Вы пытаетесь использовать 'Date.UTC()', который является функцией JavaScript, поэтому он всегда будет возвращен как строка PHP. Вместо этого вы должны вычислять временную метку в PHP, поэтому возвращенный будет числом. Тогда должно быть: '[0] => [1453852800000, 20.00]', '[1] => [1453939200000, 30.00]' ... и т. Д. –

ответ

0

возможно

  • итерация на вашем {{ my_array }} прутик переменной
  • использовать только юникод символов для JSON: JSON specification
Смежные вопросы