0

配列と外部ファイルがあり、どちらにも多くの単語が含まれています。配列内の文字列を外部ファイル全体と一致させたい。次に、同じ単語があれば、その単語を配列から削除します。

はるかに短い例:

 $words = {"apple", "orange", "banana", "grape", "peach"}

外部テキスト ファイルは単語の純粋なリストです

apple
banana
melon
...

外部ファイルにある単語を削除して、最終的にこれを取得したいと思います。

$words = {"orange", "grape", "peach"}

外部ファイルを呼び出し、すべての行をスライスしてから、別の配列に保存する必要がありますか? 次に、ソース配列と比較しますか? 配列とテキスト ファイルを比較する最も効果的な方法は何ですか? あなたの知恵に感謝します!

4

1 に答える 1

3

array_diff .( fileを使用して、ファイルから配列を取得できます。)

$result = array_diff($words, file('path_to_file', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));

PS: 外部テキスト ファイルが非常に大きく、一度にメモリにロードしたくない場合は、1 行ずつ読み取り、配列に存在するかどうかを確認できます。

于 2012-05-22T03:23:44.103 に答える