在 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