2012-02-29 4 views
0

J'ai des fichiers texte qui ont liste des milliers de noms comme celui-ciRemplacer les doublons dans un fichier texte avec PHP?

DallasWebJobs 
DallasWebJobs 
DallasWebJobs 
php_gigs 
brotherjudkins 
goldbergwb 
SanDiegoWebJobs 
brinteractive 
muracms 
browan85 
php_gigs 
php_gigs 
php_gigs 
php_gigs 

1 nom par ligne, 1 fichier peut contenir jusqu'à 30.000 noms sur ce bien et je dois remplacer tous les noms en double, car probablement autant comme la moitié sont des doublons.

Je voudrais faire cela en PHP, 1 alors que j'importais chaque ligne dans une base de données MySQL et que je le faisais mais cela semblait être trop compliqué, je suis sûr qu'il y a un moyen plus simple.

S'il vous plaît aider si vous pouvez


mise à jour je trouve cela pour des e-mails, il devrait fonctionner aussi

$list = file('./Emailist.txt'); 
$list_unique = array_unique($list); 
foreach ($list_unique as $mail) { 
    echo $mail; 
} 
+2

Qu'en est-il de la sensibilité à la casse? Est-ce que ** bob ** serait un doublon de ** Bob **? – Bot

+3

Il y a une manière triviale de le faire dans shell 'trier votre fichier | uniq'. Êtes-vous sûr de vouloir utiliser les installations php? – zerkms

+0

@Computer J'ai mis à jour ma question ci-dessus, je viens de trouver un exemple qui a été utilisé pour les courriels, je pense que cela fonctionnera pour cela. Les noms sont des noms Twitter, donc je ne pense pas que le Bob vs Bob sera un problème – CodeDevelopr

Répondre

1

De php.net: serg dot podtynnyi at gmail dot com 06-Feb -2009 11:21

// Supprimer les doublons d'un fichier texte et le résultat du vidage dans un fichier par exemple: liste des e-mails, des liens liste etc

<?php 

$data1 = file("data1.txt"); 

file_put_contents('unique.txt', implode('\n', array_unique($data1))); 
?> 

Cela supprimera tous les doublons et l'enregistrer comme un fichier de unique.txt

ou

<?php 

$data1 = file("data1.txt"); 

$uniqueArray = array_unique($data1)); 
?> 

stockerez dans $uniqueArray

0
$lines = file("test-file"); 

foreach($lines as $line) 
{ 
    $new[str_replace(array("\n","\r"),"",$line)] = 1; 
} 

print_r(array_keys($new)); 
0
$file = file_get_contents($filename); 
$arr = array(); 
$arr = split('\n',$file); 
$arr = array_unique($arr); 

Ensuite, écrivez le contenu de $arr à textfile à nouveau

Questions connexes