• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Doppelte Einträge aus Datei löschen

Magnusmanu

Neues Mitglied
Hey Leute,

ich habe eine Datei die z.B. so aussieht:

2304 5604
1363 6378
2304 2976
...

und jetzt soll diese Datei geöffnet werden und es soll überprüft werden ob in der ersten spalte (also soll bis zum 1. Leerzeichen geprüft werden) irgend ein Eintrag doppelt ist und wenn dem so ist soll diese Zeile gelöscht werden und meine Frage ist wie ich das mit der Überprüfung realisieren kann.

Danke schon mal für die mühe ^^
 
Datei mit file einlesen, Schleife foreach über das Array, Zeile mit explode zerlegen, erste Spalte in einem Array merken, nachdem dieses Array mit in_array überprüft worden ist, ob es so einen Eintrag gibt
 
okay ich hab das jetzt so gemacht:
PHP:
for( $i=0; $i < count( $file ); $i++ )
$array[$i] = explode( " ", $file[$i] );
foreach($array as $line){
if (in_array($id, $line[0])) {   
fClose($handler);
}
else {   
fWrite($handler , $id . $newline);   
fClose($handler);
}
}
also wenn in der ersten spalte schon eine ID Nummer gefunden wurde soll es nix schreiben und wenn nix gefunden wurde schreibt es eine ID hinein aber es funktioniert nicht, wenn in der Datei die ID schon steht schreibt es trotzdem die ID nochmal hinein. Weiß jemand wo der Fehler liegt?
 
Als Ansatz:
PHP:
<?php
 
   $data = file("datei.txt");
   
   $found = array();
   
   foreach ($data as $line)
   {
      $values = explode(" ", $line);
      
      if (in_array($values[0], $found))
        echo $values[0] . " schon vorhanden<br />\n";
        
      $found[] = $values[0]
   }
?>
 
Zurück
Oben