2013-03-07 49 views
3

我有多个数组遵循下面的例子的格式,我想知道我如何编程重构阵列用于Highcharts(特别是Highstock)。我希望能够比较每个数组的数据,如this demo所示。[Date]应该是X轴,[Close]应该是给定数据点的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

你想要的输出是什么? – 2013-03-07 12:57:27

+0

什么是Highcharts最简单的消费方式。我假设我需要的唯一值是[日期]和[关闭]值。 – 585connor 2013-03-07 13:01:27

回答

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 2013-03-07 18:23:07

+0

哦。是的我的不好,我编辑了答案:) – 2013-03-08 04:21:00