问题:
如何将数组转换为 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中文网其他相关文章!