php - 如何将数据从多维数组导出到 csv
问题描述
我正在准备将一些数据导出到 csv。我可以在网络上打印数据,但是当我将其保存到 csv 文件时,它会显示:
Column 1,"Column 2"
Array,"Acme (Sample)",0011U00000AnbfaQAB
Array,"Global (Sample)",0011U00000AnbfbQAB
我怎样才能摆脱“阵列”?
我在这里获取数据并打印出来:
foreach ($records as $record)
{
print 'Name :';
print htmlspecialchars($record['Name']);
print ' - ';
print htmlspecialchars($record['Id']);
print '<br/>';
print "\n";
}
这是将数据保存到 csv 的代码:
$file = fopen('toNavasoft.csv', 'w');
// save the column headers
fputcsv($file, array('Column 1', 'Column 2'));
// save each row of the data
foreach ($records as $record)
{
fputcsv($file, $record);
}
// Close the file
fclose($file);
我刚刚添加了这个:
var_export ($records);
输出是:
array ( 0 => array ( 'attributes' => array ( 'type' => 'Account', 'url' => '/services/data/v20.0/sobjects/Account/0011U00000AnbfaQAB', ), 'Name' => 'Acme (Sample)', 'Id' => '0011U00000AnbfaQAB', ), 1 => array ( 'attributes' => array ( 'type' => 'Account', 'url' => '/services/data/v20.0/sobjects/Account/0011U00000AnbfbQAB', ), 'Name' => 'Global (Sample)', 'Id' => '0011U00000AnbfbQAB', ), )
我希望输出如下:
Column 1,Column 2
Acme (Sample),0011U00000AnbfaQAB
Global (Sample),0011U00000AnbfbQAB
解决方案
您可以使用fputcsv,使用以下代码:
<?php
$result = array(['column1', 'column2']);
foreach($records as $record){
$result[] = [$record['Name'],$record['Id']];
}
$fp = fopen('toNavasoft.csv', 'w');
foreach ($result as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
这里的重点是选择你想要保存在 cv 文件中的数据到 $result 变量中,然后继续你已经尝试做的事情。
希望这对您有所帮助。
推荐阅读
- vb.net - 有没有办法简化这段代码?这里是 Visual Basic
- macos - lldb 不允许设置断点也不允许列出源文件
- python - python没有在max()中显示值
- angular - 已发出此错误...我该怎么办?
- javascript - 通过电子邮件提交 HTML 测验多个表单
- typescript - 从 Typescript 中的“import * as”动态访问类型?
- python - 找不到文件不退出python3
- python - 当鼠标悬停在等值线图上时显示 GEOJson/Dataframe 信息
- firebase - Firebase Cloud Firestore 社交网络数据库设计
- r - 将日志应用于时间序列列表中的所有元素