HOWTO · PHP

在 PHP 中将数组转换为 CSV 文件

在本教程中,学习如何在 PHP 中将数组转换为 CSV 文件。

本页内容

本教程将演示在 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 输出

上面的代码首先创建了一个 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

输出:

数组到 CSV 并读取文件输出