首頁 >後端開發 >php教程 >如何將多維數組轉換為 CSV 檔案?

如何將多維數組轉換為 CSV 檔案?

Barbara Streisand
Barbara Streisand原創
2024-11-10 02:51:021038瀏覽

How to Convert a Multi-Dimensional Array into a CSV File?

將陣列轉換為 CSV

問題:
如何將陣列轉換為 CSV 檔案?

陣列:
給定陣列包含多個層級的物件和數組,其結構類似於資料庫表。

解決方案:
要將這樣的陣列轉換為 CSV 文件,可以使用像 arrayToCsv() 這樣的函數。此函數採用陣列作為輸入,並透過適當格式化和轉義欄位來產生 CSV 字串。

實作:

/**
 * Formats a line (passed as a fields  array) as CSV and returns the CSV as a string.
 * Adapted from http://us3.php.net/manual/en/function.fputcsv.php#87120
 */
function arrayToCsv(array &$fields, $delimiter = ';', $enclosure = '"', $encloseAll = false, $nullToMysqlNull = false) {
    $delimiter_esc = preg_quote($delimiter, '/');
    $enclosure_esc = preg_quote($enclosure, '/');

    $output = array();
    foreach ($fields as $field) {
        if ($field === null && $nullToMysqlNull) {
            $output[] = 'NULL';
            continue;
        }

        // Enclose fields containing $delimiter, $enclosure or whitespace
        if ($encloseAll || preg_match("/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field)) {
            $output[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure;
        } else {
            $output[] = $field;
        }
    }

    return implode($delimiter, $output);
}

利用此函數,陣列可以使用下列指令將其轉換為CSV 檔案碼:

$csvData = arrayToCsv($array);

輸出:
$csvData 變數現在將包含陣列的CSV字串表示形式,可以進一步處理、寫入檔案或整合與適當的應用程式。透過採用這種方法,可以將提供的多維數組有效地轉換為 CSV 格式。

以上是如何將多維數組轉換為 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn