首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php中从文本文件中删除匹配项

在php中从文本文件中删除匹配项
EN

Stack Overflow用户
提问于 2013-01-31 06:27:02
回答 2查看 86关注 0票数 2

考虑一个txt文件,其中包含一个项目列表

qqqqqq

eeeeee

dddddd

哈哈哈哈

dddddd

哈哈哈哈

999999

列表中的一些项目是重复的。如何使用php输出一个文本文件,其中所有重复的内容都被删除。

结果是:

qqqqqq

eeeeee

999999

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 06:40:50

代码语言:javascript
复制
<?php

$file = file_get_contents('file.txt'); //get file to string
$row_array = explode("\n",$file); //cut string to rows by new line
$row_array = array_count_values(array_filter($row_array));

foreach ($row_array as $key=>$counts) {
    if ($counts==1)
        $no_duplicates[] = $key; 
}

//do what You want
echo '<pre>';
print_r($no_duplicates);

file_put_contents('no_duplicates.txt',$no_duplicates); //write to file. If file don't exist. Create it.
票数 1
EN

Stack Overflow用户

发布于 2013-01-31 06:33:55

您可以使用array_unique

然后把内容改回来

代码语言:javascript
复制
$file = fopen("filename.txt", "r");
$members = array();

while (!feof($file)) {
   $members[] = fgets($file);
}

fclose($file);
$unique_members = array(); 
$unique_members = array_unique($members);
var_dump($unique_members);
//write the content back to the file

上面的解决方案仅用于删除重复项,并使其具有唯一性。感谢nhahtdh指出它。

代码语言:javascript
复制
$count_members = array_count_values($members); 
foreach($count_members as $key=>$value)
{
   if($value == 1) 
       //write it to the file 
}

所以你不再需要array_unique的东西了再次道歉

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14615067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档