我必须将 php 关联数组转换为 CSV,如下所示:
[
["a"=>1, "b"=>2, "c"=>3],
["a"=>5, "b"=>6, "c"=>6],
["a"=>7, "b"=>8, "c"=>9, "d"=>10]
]
必须输出一个字符串,例如
a;b;c;d
1;2;3;
4;5;6;
7;8;9;10
我已经仅使用 foreach
和 implodes
实现了此逻辑。但是,CSV具有一些功能,例如知道何时显示特征字符以及何时引用单元格。
我已经在前端使用了很多 https://www.papaparse.com/(javascript(。
有没有可以完成这项工作的作曲家包?
附言。我需要 CVS 作为字符串而不是保存到文件中。
您可以使用
fputcsv
获取正确格式化的CSV,保存到内存,然后将其保存到变量:
$fh = fopen('php://memory', 'r+');
foreach($array as $row) {
fputcsv($fh, $row); // add other args as needed
}
$csv = stream_get_contents($fh, -1, 0);
//or
rewind($fh);
$csv = stream_get_contents($fh);
您还可以使用php://temp
,它将使用内存达到限制,然后写入临时文件,或者您可以使用tmpfile
生成自己的临时文件。