我想將數據保存到csv文件。PHP csv報告添加列名
我已經可以做到這一點,但我也想添加像列名,使該報告的可讀性,但是這就是我奮力:
我迄今爲止代碼:
<?php
namespace Test\UserBundle\ReportsBuilder;
class RegistrationReport {
public function buildRegReport($data)
{
$cavPath = '../src/Test/UserBundle/Resources/reports/test_report_'.date('Y-m-d H:i:s').'.csv';
$csvh = fopen($cavPath, 'w+');
$row = 'rowid'.",".'emailaddress'.",".'firstname'.",".'surname'.",".'contact_number';
foreach ($data as $value)
{
$reportRows = array
(
$value['rowid'],
$value['emailaddress'],
$value['firstname'],
$value['surname'],
$value['contact_number'],
);
fputcsv($csvh, $reportRows);
}
fclose($csvh);
}
}
所以傳入該方法的$ data參數包含數組數組。正在考慮創建一個字符串列名然後一些如何將其添加到循環,但我可能是錯誤的這一個任何建議如何我可以分配列我的報告名稱。
問候
哇大聲笑我跟着exacly你寫了什麼,從內部刪除數組foreach,並在foreach之前添加fputcsv。你能否解釋一下,我發現它有點有線:P爲什麼使用fputcsv兩次。 – John
fputcsv格式並將行插入爲CSV。你的foreach循環插入數組$ data中的所有數據。如果您將該行放入循環中,則會多次添加鍵。 CSV只包含逗號分隔的字符串。通過在foreach循環之前添加鍵,可以將數組鍵作爲第一行插入到文件中。這意味着您的文件將如下所示: – Boratzan
key1,key2,key3(這是文件的第一行)。之後,你的循環開始工作,並將輸出以下內容: value1,value2,value3。 – Boratzan