0

大家好,我有一个包含多行的文本文件,比如说:

line1
line2
line3
line4
line5

基于对 mysql 数据库的查询,我得到一些值,例如

line1
line3

我想从查询中获取数组并从文本文件中删除这些值,以便结果是:

line2
line4
line5

我从数据库中获取值没有问题,我的问题是如何从文本文件中删除行?

4

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 回答