2013-03-07 14 views
3

У меня есть несколько массивов, которые следуют формату нижеприведенного примера, и я хотел бы знать, как я могу программно реструктурировать массивы для использования с Highcharts (в частности Highstock). Я хотел бы иметь возможность сравнивать данные каждого массива, как показано в this demo. [Дата] должна быть осью X, а [Закрыть] должна быть осью Y для данной точки данных.Массив реструктуризации для использования Highcharts

Пример массива:

Array 
(
    [0] => Array 
     (
      [Date] => 2013-03-06 
      [Open] => 3.79 
      [High] => 3.64 
      [Low] => 3.48 
      [Close] => 3.52 
      [Volume] => 22184500 
      [Adj Close] => 3.72 
     ) 

    [1] => Array 
     (
      [Date] => 2013-03-05 
      [Open] => 3.63 
      [High] => 3.05 
      [Low] => 3.28 
      [Close] => 3.54 
      [Volume] => 32987900 
      [Adj Close] => 3.14 
     ) 

    [2] => Array 
     (
      [Date] => 2013-03-04 
      [Open] => 3.50 
      [High] => 3.67 
      [Low] => 3.50 
      [Close] => 3.64 
      [Volume] => 47933200 
      [Adj Close] => 3.84 
     ) 
) 

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация или какие-либо вопросы.

Благодаря

+0

Каков ваш желаемый результат? –

+0

Что бы ни было проще для использования Highcharts. Я предполагаю, что мне понадобятся только значения [Дата] и [Закрыть]. – 585connor

ответ

1

Если вы что-то вроде этого:

$i = 0; 
    foreach($your_array as $val){ 
     $res[$i][] = strtotime($val['Date']) * 1000; //sets the date as a javascript timestamp 
     $res[$i][] = (float)$val['Close']; //make sure it is formatted as a number not a string 
     $i++; 
    } 
    json_encode($res); 

Вы должны json, который вы можете передать в качестве своего объекта данных в диаграмме.

0

Я не уверен, что на самом деле вы ищете,

Попробуйте это:

$res    = array(); 
foreach($your_array as $key=>$val){ 
    $res[$key]['Date'] = $val['Date']; 
    $res[$key]['Close'] = $val['Close']; 
} 

echo "<pre>"; 
print_r($res); 
+0

Это полезно для устранения ненужных данных, но возвращает только один цикл через '$ your_array'. Я бы хотел, чтобы он прошел через столько циклов, сколько элементов в массиве. – 585connor

+0

Ох. Да, я плохой, я отредактировал ответ :) –

Смежные вопросы