[PHP] Probleme de tableau (Array)
Résolu
slasher404
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
slasher404 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
slasher404 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
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 :
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 :)
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:
- [PHP] Probleme de tableau (Array)
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
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
et si tu essayait en faisant un array_diff(...) ou array_diff_assoc(...) entrer les deux array ?
vas voir sur Google comment faire
Bonjour Alain42, j'ai effectivement commencer au debut par cette fonction "array_diff()" mais j'avai le meme réultat =/
salut,
un petit exemple qui marche chez moi:
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); ?>
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.
merci.
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
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
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.
Alors j'ai bien mes deux array "classiques" je vois vraiment pas d'où vien le probleme =/
ps: encore merci pour votre aide.
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 ;:
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>"; ?>