2

次の項目を;で分割して作成されたCSVがあるとします。

A   B   C   D   E   F
G   H   I   J   K   L
M   N   O   P   Q   R

次のコードをどのように使用できるかを理解しようとしています

$f = fopen($file, "r");
while ($row = fgetcsv($f,'',';')) {
    if ($row[1] == 'H') {       
        echo ('FOUND ! ');      
    }
}

ファイルを開き、その後、CSVファイルで見つかったアイテムについて、アイテムをHに置き換えたいと思います。これはどのように行われますか?KK+replace

これを使用して、100万エントリのCSVに条件付きで値を挿入します。つまり、1つの要素が見つかった場合、このアイテムを他の値で更新します。

MySQLがアイテムごとの検索-検索-更新/置換に0.5秒以上かかるため、CSVを選択しています。(すべてがループで行われます)。

4

1 に答える 1

1

これを行う最も簡単な方法は、ファイルを開いて、同じように一度に1行ずつ読み取ることですが、「出力」ファイルを開いて、「」の各行をループしながら、一度に1行ずつそのファイルに書き込みます。ソースファイル。だから基本的に

$f = fopen($file, "r");
$o = fopen($output_file, "a");
while ($row = fgetcsv($f,'',';')) {
  if ($row[1] == 'H') {         
    $row[4] = '??'; // whatever you want to replace K with
     echo ('FOUND ! ');        
  }
  fputcsv($o,$row,';');    
}
于 2013-03-09T16:03:20.817 に答える