2017-01-31 8 views
0

現在、PHP/AJAXスクリプトで、日付範囲内を検索して検索結果をグラフで取得できます。私は文字通りこのプロジェクトの上で私の髪を引き裂いてきました、そして、今私はあなたたちに尋ねる時が来たように感じます。PHPを使用してCSVファイルから日付範囲を読み取る

私は、グラフを表示するために、pChartというPHP用の簡単なオープンソースプラグインを使用しています。 私はグラフを表示することができますが、私はput-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 

は私を信じて、私はここに来る前に多くのことをグーグルでてきました。 ありがとうございます!このような

答えて

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 
+0

は、お返事ありがとうございます!残念ながら、私はまだ日付の日付と値を分割してグラフに入れることはできません...日付を検索する関数はもちろんですが... :( –

+0

私は今私の答えを更新し、さらにテストしましたそれは働いた...グラフではなく、2つの異なる配列のラベルから区切られた値...あなたのCSVファイルがグラフに表示する方法でソートされていることを確認してください。 –

+1

あなたはそれをしました!ありがとう これは完璧に機能しました。日付を検索してグラフで表示できます:) –

関連する問題