我正在使用下面的代码根据从 csv 文件的导入将数据添加到 csv 文件中。当我将新数据写入新的 csv 文件时,一切正常!但我想将新数据附加到新列中。我将尝试用一个例子来解释。
原始 csv 的第一列包含 Id。这些 id 用于从远程网站获取数据。此数据保存到名为 csv_array() 的数组中;:
$id = array();
if (($handle = fopen($filename, 'r')) !== false)
{
while (($data = fgetcsv($handle, 1000, ";")) !== false)
{
if ($data[0] != null)
{
$id[] = $data[0];
}
}
fclose($handle);
}
$csv_array = array();
foreach ($id as $product_id)
{
array_push($csv_array, $arr = array_merge(array('id' => $product_id), $product_info, $images));
}
下一步是将此数据插入到新的 .csv 文件中。
function export($csv_array)
{
$filename = "info.csv";
$fp = fopen($filename, 'w');
fputcsv($fp, array_keys($csv_array[0]), ';');
foreach ($csv_array as $fields)
{
fputcsv($fp, $fields, ';');
}
fclose($fp);
}
这一切都有效,但我想将新数据附加到原始 csv 的三个新列中。我尝试使用 $fp = fopen($filename, 'a'); 但这会将新数据附加到 csv 的末尾,而不是三个新列。谁能给个提示:)