0

以下のコードを使用して、csv ファイルからのインポートに基づいて csv ファイルにデータを追加しています。新しいデータを新しいcsvファイルに書き込むと、すべて問題ないように見えます! しかし、新しいデータを新しい列に追加したいと思います。例を挙げて説明しようと思います。

元の csv の最初の列には ID が含まれています。これらの ID は、リモート Web サイトからデータを取得するために使用されます。このデータは 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 の 3 つの新しい列に追加したいと思います。$fp = fopen($filename, 'a'); を使用してみました。ただし、これにより、3 つの新しい列ではなく、csv の最後に新しいデータが追加されます。誰が私にヒントを与えることができます:)

4

1 に答える 1