France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 342 membres enregistrés - 1 872 901 posts - 95 150 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           [PHP] problème de cases vides dans un tableau
18 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
[PHP] problème de cases vides dans un tableau

Lapinette
Nan, pas de description, j'ai décidé et tok !

Messages : 1 951
Inscrit le 02/12/04
Ville : [24]-[38]
Non connecté
  Posté le 21 mars 2006 - 21 h 08 m 48 s
Bonjour tout le monde :hello:

J'ai encore un petit problème en programmation. Cette fois-ci, plus de python ou de R que personne ne connait, mais du PHP... :yes:

Bon alors, j'ai un tableau assez compliqué. Chaque case de mon tableau est en fait un autre mini-tableau avec toutes les données dont j'ai besoin. Tout le monde suit ? :???:
Mon problème est que lors du chargement du fichier d'origine et de la création du tableau, il entre des cases vides. J'ai essayé pas mal de chose dont unset mais ça ne marche pas. La seule solution que je trouve "bourrine" est de recréer un tableau derrière en insérant que les cases non vides.


mon tableau (3 premières cases) nettoyé :

Array ( [0] => Array ( [0] => gi|73852945|ref|YP_308672.1| nonstructural protein 2 [Influenza A virus (A/Goose/Guangdong/1/96(H5N1))] [1] => 121 [2] => BLOSUM62 [3] => 10 [4] => 11 [5] => 1 [6] => 1 [7] => 1_14708 ) [1] => Array ( [0] => gi|73852945|ref|YP_308672.1| nonstructural protein 2 [Influenza A virus (A/Goose/Guangdong/1/96(H5N1))] [1] => 121 [2] => 1 ) [2] => Array ( [0] => gi|401386|sp|P30914|NEP_IACKG [1] => Nuclear export protein (NEP) (Non structural protein 2) (NS2) [2] => P30914 [3] => 121 [4] => 1 [5] => 233.417 [6] => 594 [7] => 9.82192e-62 [8] => 1 [9] => 121 [10] => 1 [11] => 121 [12] => 0 [13] => 0 [14] => 119 [15] => 120 [16] => 0 [17] => 121 [18] => MDSNTITSFQDILQRMSKMQLESSSVDLNGMITQFERLKIYRDSLGESMMRMGDLHSLQNRNATWRNELSQKFEEIRWLI
AECRNILTKTENSFEQITFLQALQLLLEVESEIRTFSFQLI [19] => MDSNTITSFQDILQRMSKMQLESSSVDLNGMITQFERLKIYRDSLGESVMRMGDLHSLQNRNATWREELSQKFEEIRWLI
AECRNILTKTENSFEQITFLQALQLLLEVESEIRTFSFQLI [20] => MDSNTITSFQDILQRMSKMQLESSSVDLNGMITQFERLKIYRDSLGES+MRMGDLHSLQNRNATWR ELSQKFEEIRWLIAECRNILTKTENSFEQITFLQALQLLLEVESEIRTFSFQLI [21] => 2 )


ce qui marche pas :
    Code php    
 1. $tableau=array();$tabintab=array();
 2. while (!feof($fichier)){ 
 3. 
 4. // tant qu il y a des donnees, on lit toutes les lignes
 5.       $ligne = fgets($fichier,10000000);
 6.       $gi="gi|";
 7.       $ligne = str_replace($gi, "///gi|", $ligne);
 8.       $tab= explode ("///",$ligne);
 9.       unset ($tab[0]);
10.       foreach ($tab as $key => $paragraphe){
11.             $tab[$key]=explode ("***",$paragraphe);
12.       }
13. 
14. foreach ($tab as $key1 => $paragraphe){
15.             foreach ($paragraphe as $key2 => $donnees){
16.                   $expreg_vide="^ *$";
17.                   if (ereg($expreg_vide,$donnees)){
18.                         $case=$tab[$key1];
19.                         unset ($case[$key2]);
20.                  
Ce que je fais qui me plaît pas :
    Code php    
 1. $tableau=array();$tabintab=array();
 2. while (!feof($fichier)){ 
 3. 
 4. // tant qu il y a des donnees, on lit toutes les lignes
 5.       $ligne = fgets($fichier,10000000);
 6.       $gi="gi|";
 7.       $ligne = str_replace($gi, "///gi|", $ligne);
 8.       $tab= explode ("///",$ligne);
 9.       unset ($tab[0]);
10.       foreach ($tab as $key => $paragraphe){
11.             $tab[$key]=explode ("***",$paragraphe);
12.       }
13. }  
14. 
15. // NETTOYAGE DES CASES VIDES DU TABLEAU:
16.       $keys1=array();
17.       $keys2=array();
18.       foreach ($tab as $key1 => $paragraphe){
19.             foreach ($paragraphe as $key2 => $donnees){
20.                 	$expreg_vide="^ *$";
21.                   if (ereg($expreg_vide,$donnees)){
22.                         array_push($keys1,$key1);
23.                         array_push($keys2,$key2);
24.                   }
25.             }
26.       }
27.       foreach ($keys1 as $k => $key){
28.             unset ($tab[$key][$keys2[$k]]);
29.       }
30.       
31. //obtention du tablo final
32. $tableau_final=array();
33. foreach ($tab as $paragraphe){
34.       $soustableau=array();
35.       foreach ($paragraphe as $donnees){
36.             array_push ($soustableau,$donnees);
37.       }
38.       array_push($tableau_final,$soustableau);
39. }



Y aurait-il quelqu'un qui verrait une solution ou la grosse boulette que je fais qui fait tout planté ? :???:



La franchise n'est pas de dire ce que l'on pense mais de penser ce que l'on dit.... A méditer.... :eye: :cloche:
Et pour les non-avertis, le lapin, c mon mien :love6: même si c'est dit dans le pseudo... :D


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 21 mars 2006 - 22 h 54 m 57 s
Que dis-tu ??? J'ai essaye de t'aider au moins pour Python .. ingrate :(


Message édité 1 fois, la dernière par iraysyvalo le 21 mars 2006 - 22 h 55.


Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Lapinette
Nan, pas de description, j'ai décidé et tok !

Messages : 1 951
Inscrit le 02/12/04
Ville : [24]-[38]
Non connecté
  Posté le 21 mars 2006 - 23 h 06 m 34 s
Oui tu m'as aidé et je t'en suis très reconnaissante :jap:

Mais avoue aussi que Python, c'est pas le langage le plus connu au monde... ou alors sauf par des bioinformaticiens qui préfèrent coder en Perl... :D



La franchise n'est pas de dire ce que l'on pense mais de penser ce que l'on dit.... A méditer.... :eye: :cloche:
Et pour les non-avertis, le lapin, c mon mien :love6: même si c'est dit dans le pseudo... :D


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 22 mars 2006 - 11 h 43 m 40 s
T'as pas un bout de ton fichier ? Je pense avoir une solution mais j'ai un petit doute donc je veux tester ^^



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Lapinette
Nan, pas de description, j'ai décidé et tok !

Messages : 1 951
Inscrit le 02/12/04
Ville : [24]-[38]
Non connecté
  Posté le 22 mars 2006 - 17 h 38 m 34 s
Bah t'as tout le tableau here :yes:
http://latmy.free.fr/tableau.txt

Faut télécharger le fichier pour qu'il soit "plus lisible"...



La franchise n'est pas de dire ce que l'on pense mais de penser ce que l'on dit.... A méditer.... :eye: :cloche:
Et pour les non-avertis, le lapin, c mon mien :love6: même si c'est dit dans le pseudo... :D


groumf
Admin. Métaforum
Coordinateur
Un barbare des temps modernes et sa monture, Co-Chef d'entreprise PDG, et maitre du monde

Messages : 18 495
Inscrit le 07/11/01
Ville : La ville où les reblochons et la raclette poussent dans les arbres
Non connecté
  Posté le 22 mars 2006 - 17 h 44 m 07 s
a mon avis c'est le .php que erel voudrait mater



Dépannage informatique de la région d'Annecy, Massif des Aravis
vends mégane dci


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 22 mars 2006 - 17 h 49 m 13 s
non non c'était bien le fichier, le php ou le tableau je m'en fiche ;)


Message édité 1 fois, la dernière par Erel69 le 22 mars 2006 - 17 h 50.

Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Page genérée en 0.8447 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory