[PHP] Probleme de tableau (Array)

Résolu/Fermé
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 - 25 nov. 2007 à 10:53
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 - 25 nov. 2007 à 15:35
Bonjour a tous !

Voila j'ai un problème depuis quelques jours que je n'arrive pas a résoudre, et je ne vois même pas où est le problème... =/

J'ai deux fichiers texte contenant une liste de pseudo, le fichier A contient 10 pseudos
pseudo1
pseudo2
pseudo3
...
Le fichier B en contient 6.
Je veux faire afficher sur ma page les pseudos qui ne sont pas présent dans le fichier B.
Voila le code :

<?
$liste_membre_today = array();   //declaration du futur tableau
$liste_membre = file("../data/liste_membre.txt"); //creation du tableau
$liste_membre_ok = file("../data/verif/23-11-07.txt"); //creation du tableau
foreach($liste_membre_ok as $membre_ok){ // le fichier B contenent d'autres 
$membre_ok = explode(";:",$membre_ok); // informations avec le pseudo, je fais
array_push($liste_membre_today,$membre_ok[0]);// un explod pour créer un tableau 
} // seulement avec  les pseudos du fichier B

print_r($liste_membre); //j'affiche pour vérifier le sableau
echo "<br>";
print_r($liste_membre_today); //j'affiche pour vérifier le sableau
echo "<br><br>"; 
///////////

foreach($liste_membre as $membre_check){
if(in_array($membre_check,$liste_membre_today)==false){
echo "<br>$membre_check non trouvé";
}
}
?>


Et quand je fais ça, tout les pseudos sont affiché a chaque fois. =(

Alors que quand je fais le bout de code avec la fonction "in_array" avec des tableaux que je viens de créer a la main cela marche parfaitement. Cela doit donc venir de mes tableaux générés a partir des fichiers ?
ou ci vous avez une meilleur solution !

j'espère ne pas avoir été trop confus et en vous remerciant d'avance merci :)
A voir également:

8 réponses

Bonjour,

et si tu essayait en faisant un array_diff(...) ou array_diff_assoc(...) entrer les deux array ?

vas voir sur Google comment faire
0
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 3
25 nov. 2007 à 13:29
Bonjour Alain42, j'ai effectivement commencer au debut par cette fonction "array_diff()" mais j'avai le meme réultat =/
0
salut,

un petit exemple qui marche chez moi:

<?php
$array1=array("a","b","d","c");
$array2=array("d","a");
$array_3=array_diff($array1,$array2); // attention à l'ordre des array
print_r($array_3);
?>
0
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 3
25 nov. 2007 à 14:14
voila, j'ai testé le code et cela marche bien, j'avais déjà fait le test moi même, c'est vrais ça marche, mais des que j'utilise les tableaux qui on été généré a partir des fichiers txt, cela ne marche plus =s et c'est là que je seche.
merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,

il me semble lire plus haut que le fichier B contient d'autres infos que le pseudo

en est-il de même dans le fichier A ?

Il faut que tu fasses ta boucle pour explode et isoler le pseudo dans les deux fichiers et ensuite tu fais array_diff sur les array contenant seulement les pseudo.

apparemment les clefs sont conservées alors tu dois pouvoir reconstruire les infos complémentaires
0
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 3
25 nov. 2007 à 15:07
Oui le fichier B a plusieur infos (d'où l'explod), et là où est le probleme c'est que dans le fichier A il n'y a que les pseudos, donc pas besion d'explod.
Alors j'ai bien mes deux array "classiques" je vois vraiment pas d'où vien le probleme =/

ps: encore merci pour votre aide.
0
Essayes comme ça:

j'ai modifié les noms de certains array pour qu'ils soient plus "parlants"

Es tu sur que le séparateur entre le pseudo et la suite dans B soit bien ;:

<?php
$liste_pseudos_membre_ok = array();   //declaration du futur tableau
$liste_membre = file("../data/liste_membre.txt"); //creation du tableau A
$liste_membre_ok = file("../data/verif/23-11-07.txt"); //creation du tableau B

foreach($liste_membre_ok as $ligne){
	 // le fichier B contenant d'autres  informations avec le pseudo, je fais  un explod pour créer un tableau 
	$array_ligne = explode(";:",$ligne); 
	$liste_pseudos_membre_ok[]=$array_ligne[0]); // on empile les pseudos dans le nouvel array  seulement avec  les pseudos du fichier B
} 
echo "<pre>Tableau A:<br>"; // pour affichage plus lisible
print_r($liste_membre); //j'affiche pour vérifier le tableau A
echo "<br>Tableau pseudos liste B:<br>";
print_r($liste_pseudos_membre_ok); //j'affiche pour vérifier le tableau des pseudos du B
echo "<br><br>"; 
//comparaison

$array_3=array_diff($liste_membre,$liste_pseudos_membre_ok); // attention à l'ordre des array
print_r($array_3);
echo "</pre>";
?>
0
slasher404 Messages postés 11 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 3
25 nov. 2007 à 15:35
ca marche super !! Grand merci a vous, je relirais attentivement votre code pour faire une comparaison, encore merci pour votre patience
merci Bonne journée !! ;)
0