使用PHP从CSV文件中读出日期范围

时间:2017-01-31 17:58:48

标签: php arrays csv graph

我目前正在开发一个PHP / AJAX脚本,您可以在该脚本中搜索日期范围并在图表中获取搜索结果。我真的在这个项目上撕扯我的头发,现在我觉得是时候问你们了。

为了显示图形,我正在使用一个名为pChart的PHP简单开源插件。 我能够显示图表,但我仍然坚持使用puts-csv-searchresults-in-graph部分。

stocks.csv:

2016-01-02,77.44539475

2016-01-03,77.04557544

2016-01-06,74.89697204

2016-01-07,75.856461

2016-01-08,75.09194679

2016-01-09,76.20263178

2016-01-10,75.2301837

2016-01-13,73.84891755

2016-01-14,75.0113527

2016-01-15,77.14481412

2016-01-16,77.33058367

2016-01-17,76.85652616

2016-01-21,75.39394758

2016-01-22,76.7763823

2016-01-23,76.64038513

2016-01-24,77.20512022

2016-01-27,76.66007339

为了能够在此CSV中的日期之间进行搜索,我相信我必须将结果放在一个数组中,但我不确定如何将它放入数组中,我可以按正确的顺序读出它放在这里:

$MyData->addPoints(array(<VALUES GOES HERE>),"Value"); // Value
$MyData->addPoints(array(<DATES GOES HERE>),"Labels"); // Date

相信我,在来到这里之前我一直在谷歌上搜索。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

这样的事可能适合你:

    $stocks = array_map('str_getcsv', file('stocks.csv'));      

    $labels = array();
    $values = array();
    $from_date = '2016-01-15'; // SET THE START DATE HERE
    $to_date = '2016-01-18'; // SET THE END DATE HERE

    foreach($stocks as $stock){
        if(strtotime($stock[0]) >= strtotime($from_date) AND strtotime($stock[0]) <= strtotime($to_date)){ 
            $labels[] = $stock[0];
            $values[] = $stock[1];
        }
    }

  $MyData->addPoints($values),"Value"); // Value
  $MyData->addPoints($labels),"Labels"); // Date