在 PHP 中將陣列轉換為 CSV 檔案
Sheeraz Gul
2023年1月30日
2022年5月13日
本教程將演示在 PHP 中使用 fputcsv()
函式將陣列轉換為 CSV 檔案。
在 PHP 中使用 fputcsv()
將陣列轉換為 CSV 檔案
fputcsv()
首先將一行格式化為逗號分隔值,然後將其寫入 CSV 檔案。它需要幾個引數,其中兩個是必需的,即 CSV 檔案和值陣列。
fputcsv()
會將一維陣列作為一行放入 CSV 檔案中。我們可以對多維陣列使用 foreach
迴圈將所有資料放入 CSV 檔案中。
成功時返回一串值;否則,它返回 False
。
下面是使用 fputcsv()
的程式碼示例。
<?php
$data = array (
array('Delftstack1', 'Delftstack2', 'Delftstack3', 'Delftstack4'),
array('Delftstack1', 'Delftstack2', 'Delftstack3', 'Delftstack4'),
array('Delftstack1', 'Delftstack2', 'Delftstack3', 'Delftstack4'),
array('Delftstack1', 'Delftstack2', 'Delftstack3', 'Delftstack4')
);
//Create a CSV file
$file = fopen('Newfile.csv', 'w');
foreach ($data as $line) {
//put data into csv file
fputcsv($file, $line);
}
fclose($file);
?>
輸出:
上面的程式碼首先建立了一個 CSV 檔案,並將資料陣列一個一個寫入。
在 PHP 中使用 fputcsv()
將陣列轉換為 CSV 檔案並讀取該 CSV 檔案
下面的程式碼首先使用 fputcsv()
將給定陣列轉換為 CSV,並使用另外兩個引數 $delimiter
和 $enclosure
。它讀取檔案並列印包含所有檔案資料的字串。
請參閱示例以更好地理解具有更多引數的 fputcsv()
函式。
<?php
$data = array(
array('Employee', 'Salary', 'Attendence', 'Company'),
array('Mark', '3000', '20','Delftstack'),
array('Shawn', '4000', '22','Delftstack'),
array('Mike', '3500', '21','Delftstack')
);
$delimiter = ','; //parameter for fputcsv
$enclosure = '"'; //parameter for fputcsv
//convert array to csv
$file = fopen('file.csv', 'w+');
foreach ($data as $data_line) {
fputcsv($file, $data_line, $delimiter, $enclosure);
}
$data_read="";
rewind($file);
//read CSV
while (!feof($file)) {
$data_read .= fread($file, 8192); // will return a string of all data separeted by commas.
}
fclose($file);
echo $data_read;
?>
輸出 1:
Employee,Salary,Attendence,Company
Mark,3000,20,Delftstack
Shawn,4000,22,Delftstack
Mike,3500,21,Delftstack
輸出:
Author: Sheeraz Gul
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook