Page 1 sur 1

Pb tri fonction array multisort

Posté : 05 mars 2012, 14:26
par patos85
Bonjour, j'ai besoin de trier un fichier en ordre alpha des noms de personnes, sauf que ceux-ci ne sont pas en début de ligne. j'ai donc découpé mes lignes en 3 arrays puis j'ai utilisé la fonction Array multisort

Code : Tout sélectionner

$fic = fopen($val,'rb'); $tb_col1= array(); $tb_col2 = array(); $tb_col3 = array(); $i = 0 ; while($ligne = fgets ($fic)){ $tb_col1[$i] = substr($ligne,0,37); $tb_col2[$i] = substr($ligne,37,40); $tb_col3[$i] = substr($ligne,77,150); $i++; } $i_max = $i; fclose($fic); array_multisort($tb_col2,$tb_col1,$tb_col3 ); $nomfic2 = substr($val,0,strlen($val)-4)."_trié.txt"; $fic2 = fopen($nomfic2,'w+'); for($i = 0; $i < $i_max; $i++){ fwrite ( $fic2, $tb_col1[$i].$tb_col2[$i].$tb_col3[$i]); } fclose($fic2);
seul souci, dans mon fichier de résultat trié, je retrouve toujours une ligne avec 2 enregistrements à suivre alors que tout le reste est correctement trié et je ne vois pas pourquoi...si quelqu'un a une idée, merci d'avance !

Re: Pb tri fonction array multisort

Posté : 09 mars 2012, 16:28
par Spols
utilise plutot la fonction usort()

avec une fonction qui compare un substr() de ta ligne