Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut Créer un tableau associatif dynamique

    Bonsoir à la liste,
    Je suis entrain de créer un analyseur syntaxique en php. Le but du programme est de lire un fichier txt et de mettre le contenu de chaque ligne dans un tableau(associatif). à ce niveau il y'a pas de problème.
    Dans mon fichier il arrive de fois que j'ai deux à plusieurs lignes que je doit mettre dans le même tableau.
    Ma question est de savoir s'il est possible de créer un tableau associatif dynamique.

    Merci d'avance!

  2. #2
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    montre ton fichier source

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut

    Citation Envoyé par stealth35 Voir le message
    montre ton fichier source
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
        require_once('fonctions.php');
     
        $FileName = "UnivINFOS.txt";
        $FileLocation = "";
     
        $FileContent = file($FileLocation . $FileName);
     
        define('IF_STUDENT','2');
        define('IF_TEACHER','1');      
     
        foreach($FileContent as $LineNumber => $Line) {
            $CurrLigne = $LineNumber + 1;
            $iObjectCode = substr($Line,0, (strlen($Line) - 3) * (-1));
            $Colonne = explode(";",$Line);
     
            switch($iObjectCode) {
                case IF_TEACHER:
    				//si c'est un enseignant
    				$teacher["TEACHER"] = array(
                        "object"     => IF_TEACHER,
                        "LastName"      => $Colonne[1],
                        "Name"  => $Colonne[2]
                    );
    	       //recuperation d'un element du tableau
                   $teacher["TEACHER"]["LastName"]
                    break;
     
    				Case IF_STUDENT :
    					//si c'est un etudiant
    					$student["Student"] = array(
    						"object"     => IF_STUDENT,
    						"LastName"      => $Colonne[1],
    						"Name"      => $Colonne[2],
    						"Class"  => $Colonne[3]
    					);					
     
    				break;
     
    			}
        }
     
     
     
    ?>
    Voici le contenu de mon fichier text
    Code :
    1
    2
    3
    4
     
    1;DUPOND;DUPONT;
    2;ARBRIA;DUBOIS;TLE;
    2;ERIC;MARCHAND;2ND;

  4. #4
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    c'est du CSV utilise fgetcsv

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut

    Citation Envoyé par stealth35 Voir le message
    c'est du CSV utilise fgetcsv
    La lecture du fichier ne pose pas un problème.
    J'aimerai savoir si mon tableau associatif peut contenir plusieurs lignes.

  6. #6
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    faut faire

    Code :
    $array['teacher'][] = array()
    mais utilise fgetcsv, t'y gagneras en performance de plus il risque d'y avoir des erreur avec explode

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut

    Citation Envoyé par stealth35 Voir le message
    faut faire

    Code :
    $array['teacher'][] = array()
    mais utilise fgetcsv, t'y gagneras en performance de plus il risque d'y avoir des erreur avec explode
    stealth35, j'ai regardé la fonction mais je ne sais pas comment l'utiliser.
    Par ailleur il faut noter que le format de mon fichier est imposé et doit être un .txt

    Je me demande si je peux faire
    Code :
    fopen("MyFile.txt", "r");
    au lieu de
    Code :
    fopen("MyFile.csv", "r");

  8. #8
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    .txt c'est que l'extension, ton fichier est au format CSV
    pour le reste regarde bien les exemple

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut

    Citation Envoyé par stealth35 Voir le message
    .txt c'est que l'extension, ton fichier est au format CSV
    pour le reste regarde bien les exemple
    ok je teste ta méthode alors. Merci

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 277
    Points : 82
    Points
    82

    Par défaut

    J'ai remplacé
    Code :
    1
    2
    3
    4
    5
    6
    $student[$student] = array(
    						"object"     => IF_STUDENT,
    						"LastName"      => $Colonne[1],
    						"Name"      => $Colonne[2],
    						"Class"  => $Colonne[3]
    					);
    Par
    Code :
    1
    2
    3
    4
    5
    6
    $student[$i] = array(
    						"object"     => IF_STUDENT,
    						"LastName"      => $Colonne[1],
    						"Name"      => $Colonne[2],
    						"Class"  => $Colonne[3]
    					);
    et ça marche.
    Merci à vous tous!

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •