Parsage de fichier texte

Mammouth du PHP | 965 Messages

03 sept. 2008, 11:49

Hello,

Un petit problème pour parser un fichier texte, en fait j'ai fais une simple fonction qui me retourne un element d'un tableau en fonction d'une valeur du fichier comme ceci :
function idGenre($type)
{
	$type = strtoupper($type);
	$type = strval($type);
	$id 	= array( 'APPT' 	    => 1,
			      'BIEN' 	    => 0,
			      'GAR'      => 4,
			      'LOCOM'  => 5,
			      'MAIS'     => 3
			      );				 
							 
	if(in_array($type,$id))	return $id[$type]; return false;
}

Mais pas moyen de lui faire tester la valeur, il passe bien dans le in_array, si je test le tableau avec la valeur écrite en brut il me retourne bien la valeur, donc je comprends pas pourquoi il arrive pas à lire avec cette écriture.

Une idée ?

Eléphanteau du PHP | 38 Messages

03 sept. 2008, 12:07

Essayes de remplacer in_array() par array_key_exists(), ça devrait aller mieux je crois.

Mammouth du PHP | 965 Messages

03 sept. 2008, 12:25

Essayes de remplacer in_array() par array_key_exists(), ça devrait aller mieux je crois.
Oui c'était les clefs et non les valeurs qu'il fallait tester, par contre ca ne me retourne toujours false en faisant comme ca maintenant.

Mammouth du PHP | 1353 Messages

03 sept. 2008, 14:54

Le problème doit venir de l'appel de ta fonction.

Car le code suivant fonctionne, renvoie false ou la valeur selon si le type passé existe ou pas:
echo idGenre("GAR");
<?php

echo idGenre("GAR"); //affiche 4
echo idGenre("XXX"); //affiche rien

function idGenre($type) 
{ 
    $type = strtoupper($type); 
    $type = strval($type); 
    $id     = array( 'APPT'         => 1, 
                  'BIEN'         => 0, 
                  'GAR'      => 4, 
                  'LOCOM'  => 5, 
                  'MAIS'     => 3 
                  );                  
                              
    if(array_key_exists($type,$id))    return $id[$type]; 
    return false; 
} 

?> 
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 965 Messages

03 sept. 2008, 15:00

erf en fait j'ai trouver et voyait pas a l'affichage de la variable passé en paramètre il y avait un éspace de trop suite au split, une erreur bête.