私は小さなプロジェクトに取り組んでいますが、助けが必要です。150,000行のCSVファイルがあります(各行には10列のデータがあります)。fscvreadを使用してファイルを読み取り、ループ中に各行の列の1つ(stringxと呼びます)を10,000語の配列と照合します。stringxに10,000語のいずれかが存在する場合、preg_replaceを使用して削除されます。
これですべて問題ありません。私はすべてうまく機能していますが、問題は遅すぎることです。
配列を一致させるために2つの方法を試しました。1)explode( ""、$ stringx)を使用してstringxを配列に変換してから、array_diff($ array_stringx、$ array_10000);を使用します。2)$array_10000でforeachを使用し、$stringxでpreg_replaceを使用します
方法1は200行のデータを処理するのに約60秒かかり、方法2は60秒で500行をループできます。
これを行うためのより良い方法はありますか?
繰り返しになりますが、私は(基本的に)10,000語の配列を150,000文字列に対して一度に1つずつarray_diffする効率的な方法を探しています。
ヘルプは大歓迎です。