probleme de recherche dans un array

probleme de recherche dans un array - PHP - Programmation

Marsh Posté le 19-05-2004 à 10:43:42    

j'ai un ptit soucis pour la recherche de mot au sein d'un array.
 
je creer un array grace a un fichier texte, ou chaque index contient un prenom
 

Code :
  1. $file = "../prenom_fille.txt";
  2. $open = fopen($file, "r" );
  3. while ($read = fread($open, filesize($file))) {
  4.  $name = explode("\n", $read);
  5.  $nom_femme=array();
  6.  //add index in the array (one index=one name)
  7.  foreach($name as $prenom) {
  8.   array_push($nom_femme, $prenom);
  9.  }
  10. }


 
si je fait  

Code :
  1. echo "nom (key) a rechercher : ".$nom_femme[30]."<br />";


cela me retourne  

Citation :

nom (key) a rechercher : Abarrane


Abarrane etant le nom a recherche.
 
le problème vient du fait que je n'arrive pas a retrouve ce nom pourtant j'ai fait plein de truc :/
 

if (array_key_exists($mail3[0], $nom_femme))  echo $mail3[0]." est une femme</p>";
 elseif (in_array($mail3[0], $nom_femme))   echo $mail3[0]." est une fille</p>";
 else       echo $mail3[0]." est peut etre un garçon</p>";


 
je precise que $mail3[0] contient Abarrane
 
 
il me retourne toujours :"Abarrane est peu etre un garçon" :(
 
comment je pourrait voir si ce nom est bien dedans (en sachant qu'il y est :))


Message édité par Profil supprimé le 19-05-2004 à 11:49:31
Reply

Marsh Posté le 19-05-2004 à 10:43:42   

Reply

Marsh Posté le 19-05-2004 à 11:49:08    

up messieurs :o

Reply

Marsh Posté le 19-05-2004 à 12:11:44    

Essaie avec array_keys($nom_femme, $mail3[0])
 
Moi j'ai déjà eu des soucis avec array_key_exists()


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 12:17:49    

pareil :/

Reply

Marsh Posté le 19-05-2004 à 12:37:27    

Elle marche cette solution ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 12:38:27    

non, ca marche pas, ca continue de me dire que $mail3[0] est ptet un mec :/

Reply

Marsh Posté le 19-05-2004 à 12:40:00    

Et stu fais un print_r(array_keys($mail3[0])) ? Y a quoi dedans ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 12:41:38    

Dans ta boucle while, tu écrases ton tableau $nom_femme à chaque passage


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 12:44:49    

T509 a écrit :

Dans ta boucle while, tu écrases ton tableau $nom_femme à chaque passage

surement wai, j'ai retirer le while et ca revient au meme :/

Reply

Marsh Posté le 19-05-2004 à 12:45:59    

Taiche a écrit :

Et stu fais un print_r(array_keys($mail3[0])) ? Y a quoi dedans ?



Warning: array_keys(): The first argument should be an array in c:\work\mail\work.php on line 69


 
donc print_r(array_keys($nom_femme, $mail3[0]))
 
donne : Array ( )

Reply

Marsh Posté le 19-05-2004 à 12:45:59   

Reply

Marsh Posté le 19-05-2004 à 12:47:05    

Essaie ceci :

Code :
  1. $file = "../prenom_fille.txt";
  2.    if ($open = fopen($file, "r" )) {
  3.    $read = fread($open, filesize($file));
  4.    $name = explode("\n", $read); 
  5.    $nom_femme=array();
  6.    //add index in the array (one index=one name)
  7.       foreach($name as $prenom) {
  8.          array_push($nom_femme, $prenom);
  9.       }
  10.     print_r($nom_femme);
  11.    }
  12.    else { echo "fichier non ouvert"; }


Message édité par T509 le 19-05-2004 à 12:49:48

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 12:48:37    

T509 a écrit :

Essaie ceci :

Code :
  1. $file = "../prenom_fille.txt";
  2.    $open = fopen($file, "r" );
  3.    $read = fread($open, filesize($file));
  4.    $name = explode("\n", $read); 
  5.    $nom_femme=array();
  6.    //add index in the array (one index=one name)
  7.       foreach($name as $prenom) {
  8.          array_push($nom_femme, $prenom);
  9.       }



c'est ce que j'ai actuaellement :jap:
 
sinon j'ai fait un print_r($nom_femme) et ca me retourne
 

Code :
  1. Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 [12] => 12 [13] => 13 [14] => 14 [15] => 15 [16] => 16 [17] => 17 [18] => 18 [19] => 19 [20] => 20 [21] => 21 [22] => 22 [23] => 23 [24] => 24 [25] => 25 [26] => 26 [27] => 27 [28] => 28 [29] => 29 [30] => 30 [31] => 31 [32] => 32 [33] => 33 [34] => 34 [35] => 35 [36] => 36 [37] => 37 [38] => 38 [39] => 39 [40] => 40 [41] => 41 [42] => 42 [43] => 43 [44] => 44 [45] => 45 [46] => 46 [47] => 47 [48] => 48 [49] => 49 [50] => 50 [51] => 51 [52] => 52 [53] => 53 [54] => 54 [55] => 55 [56] => 56


 
en gros ya pas de valeurs attribués au index :/
ca serait le array_push qui merde :??:

Reply

Marsh Posté le 19-05-2004 à 12:49:28    

Ouais mais non, fais un print_r de tout ton tableau, de ces clés, etc... y a que comme ça que t'arriveras à débugger [:spamafote]
 
EDIT : ba vala :o


Message édité par Taiche le 19-05-2004 à 12:49:40

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 12:56:15    

wai mais je bloque sur le debugage [:dawa]

Reply

Marsh Posté le 19-05-2004 à 12:58:04    

et si tu fais un print_r($name); ???
 
Au fait, il sert à quoi ton foreach ? Du travail pour rien ? Je ne crois pas que cela soit utile.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 12:58:31    

Code :
  1. Array ( [0] => Aachsa [1] => Aachtje [2] => Aaf [3] => Aafien [4] => Aafina [5] => Aafje [6] => Aafke [7] => Aafkeline [8] => Aafra [9] => Aafrina [10] => Aag [11] => Aagje [12] => Aagt [13] => Aaike [14] => Aalbrechtje [15] => Aalis [16] => Aalke [17] => Aaltien [18] => Aaltine [19] => Aaltje [20] => Aamor [21] => Aanor [22] => Aardina [23] => Aardine [24] => Aaricia [25] => Aartie [26] => Aartje [27] => Aatske [28] => Abar [29] => Abarne [30] => Abarrane [31] => Abbée [32] => Abbey [33] => Abbie [34] => Abbondanza [35] => Abby [36] => Abdéla [37] => Abdélia [38] => Abelia [39] => Abélia [40] => Abelie [41] => Abélie [42] => Abélienne [43] => Abelina [44] => Abelinda [45] => Abelinde [46] => Abeline [47] => Abeliñe [48] => Abélinia [49] => Abella [50] => Abelle [51] => Abellia [52] => Abelone [53] => Abeltje [54] => Abertha [55] => Abi [56] => Abia [57] => Abida [58] => Abigaël [59] => Abigaëlle [60] => Abigail [61] => Abigaille [62] => Abina [63] => Abir [64] => Abira [65] => Abishua [66] => Abke [67] => Ablah [68] => Abondance [69] => Abonde [70] => Abra [71] => Abrama [72] => Abramina [73] => Abrea [74] => Abri [75] => Abrial [76] => Abriale [77] => Abriana [78] => Abrielle [79] => Abrienne [80] => Abrietta [81] => Abril [82] => Abrilia [83] => Aby [84] => Abya [85] => Acacia [86] => Academia [87] => Acaria [88] => Acarie [89] => Accée [90] => Acélia [91] => Acélie [92] => Aceline [93] => Acey [94] => Achila [95] => Achilina [96] => Achillea [97] => Achoura [98] => Acilia [99] => Acilie [100] => Ackelien [101] => Acracia [102] => Actea [103] => Ada [104] => Adagonda [105] => Adal [106] => Adala [107] => Adalaís [108] => Adalberthe [109] => Adalene [110] => Adalhaid [111] => Adalheidis [112] => Adalia [113] => Adalía [114] => Adalicia


 
ca avance :D

Reply

Marsh Posté le 19-05-2004 à 12:58:49    

Ba ch'ais pas, affiche les trucs que tu pushes dans ton foreach [:spamafote]
Sinon, pour la lecture de fichier, t'es un peu violent avec ton fread :sweat: Fais un while(!feof($open)) { $ligne = fgets($open); [...] }
Et tu traites ta ligne.
Il a quelle gueule, ton fichier texte que tu lis ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 12:59:15    

T509 a écrit :

et si tu fais un print_r($name); ???
 
Au fait, il sert à quoi ton foreach ? Du travail pour rien ? Je ne crois pas que cela soit utile.

ben il est la pour que chaque ligne : \n soit un index [:spamafote]
 
si tu connait un truc plus rapide je suis preneur

Reply

Marsh Posté le 19-05-2004 à 12:59:41    

Taiche a écrit :

Ba ch'ais pas, affiche les trucs que tu pushes dans ton foreach [:spamafote]
Sinon, pour la lecture de fichier, t'es un peu violent avec ton fread :sweat: Fais un while(!feof($open)) { $ligne = fgets($open); [...] }
Et tu traites ta ligne.
Il a quelle gueule, ton fichier texte que tu lis ?

nom
nom
nom
nom
nom
...

Reply

Marsh Posté le 19-05-2004 à 13:01:12    

Ba vala, tu fais c'que j'dis et hop, pu de foreach :o
$prenoms = array();
while(!feof($open))
{
  $prenom = fgets($open);
  array_push($prenoms, $prenom);
}
Et pis c'est tout :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 13:02:29    

ca revient un peu au meme hein :o
 
tmaniere le probleme est pas la vu que mon $nom_femme contient bien tout les prenom (un/index)

Reply

Marsh Posté le 19-05-2004 à 13:05:48    

Eh ba dans ce cas, fais un array_search($trucquetucherches) et pis c'est tout, roh :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 13:10:28    

non pour le moment, tu ne fait que remplir un tableau à partir d'un autre tableau.
A mon sens $name et $nom_femme sont identique à la fin.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 13:11:29    

mais ca marche pas if (array_search($mail3[0], $nom_femme)) [:totoz]
cai ca le sujet du topic [:boidleau]

Reply

Marsh Posté le 19-05-2004 à 13:13:50    

chacal_one333 a écrit :

mais ca marche pas if (array_search($mail3[0], $nom_femme)) [:totoz]
cai ca le sujet du topic [:boidleau]


Non, toi tu fais du array_key_exists() [:spamafote] Et ici, les keys c'est des indices (20, 52, 39...), pas des prénoms.
'fin bon, perso j'ferais sûrement pas ma lecture de fichier comme toi et de toute façon, à partir du moment où le tableau est rempli correctement, j'vois pas pourquoi la recherche dedans marcherait pas [:spamafote]


Message édité par Taiche le 19-05-2004 à 13:14:27

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-05-2004 à 13:14:52    

Taiche a écrit :

Non, toi tu fais du array_key_exists() [:spamafote]
'fin bon, perso j'ferais sûrement pas ma lecture de fichier comme toi et ded toute façon, à partir du moment où le tableau est rempli correctement, j'vois pas pourquoi la recherche dedans marcherait pas [:spamafote]

deja wai :jap:
 
et ensuite je fait plusieur test successif
 

if (array_key_exists($mail3[0], $nom_femme))  echo $mail3[0]." est une femme</p>";
 elseif (in_array($mail3[0], $nom_femme))   echo $mail3[0]." est une fille</p>";
 elseif (array_search($mail3[0], $nom_femme))     echo $mail3[0]." est une fille</p>";
 elseif (array_keys($nom_femme, $mail3[0]))    echo $mail3[0]." est une fille</p>";
 else       echo $mail3[0]." est peut etre un garçon</p>";


 
ca arrive toujours au else, sans s'arreter nul part

Reply

Marsh Posté le 19-05-2004 à 13:17:46    

$prenoms = array();
while(!feof($open))
{
  $prenom = fgets($open);
  $prenoms[$prenom]=$prenom;
}  
 
Comme cela tu as un tableau avec valeurs / indices identiques


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 13:22:28    

ca me crée bien des index $tableau[nom]=nom mais la recherche ne fonctionne toujours pas.
 
j'avoue je comprend vraiment pas la :/


Message édité par Profil supprimé le 19-05-2004 à 13:22:40
Reply

Marsh Posté le 19-05-2004 à 13:24:29    

j'hallucine meme un
 
echo $nom_femme[$mail3[0]] (soit $tableau[nom])
 
me retourne Notice: Undefined index: Abarrane in ...


Message édité par Profil supprimé le 19-05-2004 à 13:24:46
Reply

Marsh Posté le 19-05-2004 à 13:29:16    

pourtant :
 

Code :
  1. Array ( [Aachsa ] => Aachsa [Aachtje ] => Aachtje [Aaf ] => Aaf [Aafien ] => Aafien [Aafina ] => Aafina [Aafje ] => Aafje [Aafke ] => Aafke [Aafkeline ] => Aafkeline [Aafra ] => Aafra [Aafrina ] => Aafrina [Aag ] => Aag [Aagje ] => Aagje [Aagt ] => Aagt [Aaike ] => Aaike [Aalbrechtje ] => Aalbrechtje [Aalis ] => Aalis [Aalke ] => Aalke [Aaltien ] => Aaltien [Aaltine ] => Aaltine [Aaltje ] => Aaltje [Aamor ] => Aamor [Aanor ] => Aanor [Aardina ] => Aardina [Aardine ] => Aardine [Aaricia ] => Aaricia [Aartie ] => Aartie [Aartje ] => Aartje [Aatske ] => Aatske [Abar ] => Abar [Abarne ] => Abarne [Abarrane ] => Abarrane

Reply

Marsh Posté le 19-05-2004 à 13:30:39    

fait un print_r
 
trop tard ...


Message édité par T509 le 19-05-2004 à 13:30:59

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 13:31:24    

T509 a écrit :

fait un print_r
 
trop tard ...

:D

Reply

Marsh Posté le 19-05-2004 à 13:32:13    

et si tu fais un in_array($mail3[0], $nom_femme), il répond quoi ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 13:33:15    

C'est normal que tu aies un espace après tes index ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 13:34:05    

if (in_array($mail3[0], $nom_femme)) echo "in the array";
 else echo "isn't";


 
=> isn't :cry:

Reply

Marsh Posté le 19-05-2004 à 13:34:31    

T509 a écrit :

C'est normal que tu aies un espace après tes index ?

ben ca doit etre la disposition du print_r nan :??:
 
edit : en tout cas dans le .txt ya aucun espace juste des saut de ligne


Message édité par Profil supprimé le 19-05-2004 à 13:35:10
Reply

Marsh Posté le 19-05-2004 à 13:40:19    

T509 a écrit :

C'est normal que tu aies un espace après tes index ?


 
C'est précisément le problème. :jap:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 19-05-2004 à 13:46:35    

Sielfried a écrit :

C'est précisément le problème. :jap:

en effet :jap:
 
merci de votre aide, l'espace foutait la merde :)

Reply

Marsh Posté le 19-05-2004 à 13:57:07    

Bon et bien cela vaut bien une petite mousse


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 19-05-2004 à 14:33:50    

autre méthode :  

Code :
  1. $file = "../prenom_fille.txt";
  2.      $open = fopen($file, "r" );
  3.      $read = fread($open, filesize($file));
  4.      $prenom = (ereg($mail3[0], $read)) ? "feminin" : "masculin";


Message édité par T509 le 19-05-2004 à 14:50:00

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed