根据我从 sql 查询中获得的数组从文件中删除行



大家好,我有一个包含几行的文本文件,假设:

line1
line2
line3
line4
line5

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

line1
line3

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

line2
line4
line5
我从

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

如果文件中只有一个值实例,则如下所示:

$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]);
        }
    }
}

最新更新