問題:
如何將陣列轉換為 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中文網其他相關文章!