Удаление дублей в тексте

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?
#количество итераций над базой
$col=2;
#откуда брать
$from='1.txt';
#куда записать
$to='2.txt';
#флаг
$flag='|';
$text=file_get_contents($from);
While($doo<$col){
echo "Обход $doo <br>";
$a=array();
$b=array();
$link=array();
$r=array();
$text=str_replace(";",'',$text);
$text=str_replace("\r",'',$text);
$group=explode("\n",$text);
unset($group[(count($group)-1)]);
foreach($group as $k=>$v)
{
$a[$k]=explode($flag,$v);
foreach ($a[$k] as $v1)
{
$r[$v1][]=$k;
$link[$k]=$k;
}
}
foreach($r as $key=>$val){
$alle++;
if(count($r[$key])>1)
{
$star=$link[($r[$key][0])];
if($b[$star]){
unset($b[$star]);
}
foreach($r[$key] as $ff => $ee){
$that=$r[$key][$ff];
$a[$star]=array_unique(array_merge($a[$star],$a[$that]));
if($ff>0){
$b[$that]=1;
}
}
}
}
echo $alle;
$doo++;
$text='';
foreach($a as $k=>$v){
if(!($b[$k])){
$text.=implode($flag,$a[$k]).';'."\r\n";
}
}
}
file_put_contents($to,$text);
?>