2014-03-27 33 views
0

問題
我是一個新手,所以這可能很容易,但我卡住了。
我有一個CSV文件,一排看起來像這樣:
kamis; 4; 0,45; 0,69;
用戶可以上傳文件並對其應用一些數學運算。然後他可以下載應用的數學文件。 我已經轉換成CSV陣列PHP - 打開CSV,做一些數學,並作出另一個CSV

[0]=> array(5) { ["nazwa"]=> string(5) "kamis" ["iloć"]=> string(1) "4" ["koszt"]=> string(4) "0,45" ["cena"]=> string(4) "0,69" [""]=> string(0) "" } 

現在,我想所有的「列」轉換成數組並把它們應用數學,然後我想將它們放到一個新的CSV文件。
問題
如何將CSV列放入單獨的數組中並在計算後將它們稍後放入新的CSV文件中?

+1

[嘗試PHP文檔(http://us3.php.net/manual/en/function.fputcsv.php) –

+0

如果您的CSV文件具有可接受的格式,那麼你可以做你與你的文件操作後使用fgetcsv [fgetcsv] ,你可以存儲陣列返回到CSV本 [fputcsv] [1]:HTTP:// US3。 php.net/manual/en/function.fgetcsv.php [2]:http://us3.php.net/manual/en/function.fputcsv.php – random21

+0

你將不得不編寫一個程序。理想情況下,您將使用PHP內置的CSV函數。 –

回答

0

這裏是我使用的一個函數,你只需要傳遞一個文件名和一個關聯的數據數組(如你的例子),它將使用列標題的第一行中的任何鍵值,然後輸出所有行的值。如果不出意外,你應該能夠從這種學習:

public function outputCsv($fileName, $assocDataArray) 
{ 
    ob_clean(); 
    header('Content-Type: text/csv'); 
    header('Content-Disposition: attachment;filename='.$fileName); 
    if(isset($assocDataArray['0'])){ 
     $fp = fopen('php://output', 'w'); 
     fputcsv($fp, array_keys($assocDataArray['0'])); 
     foreach($assocDataArray AS $values){ 
      fputcsv($fp, $values); 
     } 
     fclose($fp); 
    } 
    ob_flush(); 
} 
+0

我還沒有成功,但它似乎是一個很好的解決方案。完成後我會通知你。謝謝 ! – chilliq

+0

它只是輸出csv的後半部分。讀取功能是相似的。在這種情況下,我只是寫信給PHP請求,但是您可以輕鬆修改該fopen以寫入磁盤上的某個位置。 –

+0

我剛剛完成工作 - 按預期完美工作。 – chilliq

相關問題