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 並讀取檔案輸出