首页 > 后端开发 > php教程 > 如何将多维数组转换为 CSV 文件?

如何将多维数组转换为 CSV 文件?

Barbara Streisand
发布: 2024-11-10 02:51:02
原创
1057 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板