8791 sujets

Développement web côté serveur, CMS

bonjour,

j'ai toujour eu un problème avec les tableaux Smiley lol et je n'arrive pas à me dépétrer d'un code qui semble pourtant évident.

J'ai en entrée un fichier CSV séparé par des ";" avec en première ligne les libellés et ensuite les valeurs associées à chaque ligne :

libelle1;libelle2;libelle3
12;1;45
truc;26;4
..etc


ma solution qui mache pas : je lis la première ligne que je mets dans un tableau ($tab)
avec un explode(';'$ligne).

Ensuite je parcours le tableau tant que !eof que je combine avec le taleau de mes intitulé et que je stoque dans un tableau $Tconversion ... Smiley rolleyes

Déjà j'suis pas sûr que mon algo soit idéal ; le code :

public function parseCSV($delimiter=';', $file)
    {
        $this ->Tconversion = array();

        // 1.definition des index string du tableau
        // 2.insertion des valeurs
        $fstream = fopen($file,'r');
        $ligne = fgets($fstream,'4096');
	
        $this->famille  = explode(';',$ligne);
	//print_r($this->famille);
        
        
        // insertion des valeurs dans les tableaux
	
	while(!feof($fstream))
	{
	    $ligne = fgets($fstream,'4096');
	    if($ligne[0]!='[') //different de [FIN]
	    {
		$intab = explode(';',$ligne);
		if(count($intab) == count($this->famille)) 
		{
		echo "on peut combiner";
		
		$this -> Tconversion = array_combine($this->famille,$intab);
		}
	    }
	  
	    
	}
	   	
        return $this -> Tconversion;
    }


le resultat :

on peut combiner on peut combiner ...etc 
Array ( [code] => P3 [libelle] => Boucles d..... [taille ] => )

càd juste la dernière ligne ... donc j'écrase le reste Smiley bawling

merci de votre aide dominicale
ps : faut que je fasse un max de code avec ces p.... de tableaux !
Modifié par kzone (06 Jul 2008 - 16:59)
Salut,

j'ai pas testé, mais tu peux essayer ces deux solutions:
$this->Tconversion[] = array_combine($this->famille,$intab);

ou
array_push($this->Tconversion, array_combine($this->famille,$intab));

Pour le array_push, pas certain qu'il accepte une tableau en second argument.
Modifié par SuD (06 Jul 2008 - 16:23)
merci SuD ,


$this->Tconversion[] = array_combine($this->famille,$intab);


fonctionne comme je le souhaite ...

Dieu sait pourquoi je fais un bloquage sur les tableaux ...
Et d'ailleurs si dieu sait pourquoi , il n'a qu'a me le dire aussi ... Smiley nono
Modifié par kzone (06 Jul 2008 - 17:02)
kzone a écrit :
Dieu sait pourquoi je fais un bloquage sur les tableaux ...
Et d'ailleurs si dieu sait pourquoi , il n'a qu'a me le dire aussi ... Smiley nono


Smiley smile
Dans ce cas faut pas hésiter de reprendre le sujet depuis le début, les bases. Les tableaux c'est ultra utile, et bien savoir les manipuler apporte de nouvelles solutions techniques pour traiter efficacement les données. En fait je dis ça car il fut un temps où je m'en servais peu car je n'était pas trop à l'aise avec ça. Moi ma bête noire c'est les expressions régulières, pourtant je suis convaincu de leur puissance... faut que je m'y mette sérieusement pour bien assimiler un fois pour toute. Smiley smile
tout à fait d'accord avec toi .....

je dirais même : c'est indispensable ...et c'est là que je m'aperçois de certaines faiblesses en prog (tableau et .... regexp ... si Bison traine par là on va se faire allumer Smiley ravi )

encore 2 3 jours à raison de 6 7 heures de tableaux et je crois que j'aurai remonté le handicap Smiley lol
.. je passerai aux regExp après !