0

こんにちは、私はいくつかの行を含むテキスト ファイルを持っています。

line1
line2
line3
line4
line5

mysql データベースへのクエリに基づいて、いくつかの値を取得します。たとえば、

line1
line3

結果が次のようになるように、クエリから配列を取得し、テキスト ファイルからそれらの値を削除します。

line2
line4
line5

データベースから値を取得するのに問題はありません。問題は、テキスト ファイルから行を削除する方法ですか?

4

1 に答える 1

1

ファイル内に値のインスタンスが 1 つしかない場合は、次のようになります。

$rows = your_fetch_all_func();  //or while($rows[] = your_fetch_assoc_func()) {}
$lines = file('path/to/file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($rows as $row) {
    if($key = array_search($row['column'], $lines)) {
        unset($lines[$key]);
    }
}

データベースからのデータがファイルに複数回存在する可能性がある場合は、次のようなものを使用しますが、おそらくもっとスマートな方法があります。

foreach($rows as $row) {
    if($keys = array_keys($lines, $row['column'])) {
        foreach($keys as $key) {        
            unset($lines[$key]);
        }
    }
}
于 2014-02-22T20:42:40.127 に答える