我正在尝试从CSV中提取数据,在其中运行一些函数并将其吐出到新的CSV中。我陷入困境并正确地将数据写入阵列。此外,文件已创建,但为空。
PHP
$file = fopen("yahrzeit-3.csv","r");
if ($file) {
while ( ( $row = fgetcsv( $file, ";" ) ) !== false ) { // 3
$data .= array ( $row[2], $row[3], $row[6], $row[7], $row[8], $row[14] );
}
print_r($data);
$fp = fopen('mailchimp.csv', 'w');
foreach ($data as $fields) {
print $subfields;
fputcsv($fp, $fields);
}
fclose( $fh ); // 5
}
fclose($fp);
答案 0 :(得分:1)
$file = fopen("yahrzeit-3.csv","r");
if ($file) {
$fp = fopen('mailchimp.csv', 'w');
if (!$fp) {
die('Cannot open output file');
}
while ( $row = fgetcsv( $file, ";" ) ) {
$data = array ( $row[2], $row[3], $row[6], $row[7], $row[8], $row[14] );
fputcsv($fp, $data);
}
fclose( $fp );
}
fclose($file);
比你尝试做的内存效率更高
答案 1 :(得分:0)
$data .= array ( $row[2], $row[3], $row[6], $row[7], $row[8], $row[14] );
应该是
$data[] = array ( $row[2], $row[3], $row[6], $row[7], $row[8], $row[14] );
您将$ data设置为字符串并尝试将数组填入其中。