IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

foreach avec array


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut foreach avec array
    bonsoir à tous,

    Je souhaite afficher un array par l'intermédiaire d'un foreach et ça ne marche pas enfin si presque mais pas comme il faut.....

    voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $essai = "'1' => 'not testing', '2' => 'not testing', '3' => 'not testing', '4' => 'not testing', '5' => 'not testing'";
    $s = array($essai);
    foreach($s as $cle=>$valeur) 
        { 
        echo $cle.' : '.$valeur.'<br />'; 
        }
    et voila le résultat :
    0 : '1' => 'not testing', '2' => 'not testing', '3' => 'not testing', '4' => 'not testing', '5' => 'not testing'
    au lieu de :
    1 : not testing
    2 : not testing
    3 : not testing
    4 : not testing
    5 : not testing
    mais pourquoi ?

    merci à tous pour vos réponses.

  2. #2
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    Ben tu remplis ton tableau comme si c'était qu'une seule et unique chaine de caractère^^donc pour lui, il a qu'un élément à afficher, l'identifiant 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $s = array('1'=>'not testing',
                    '2'=>'not testing'
                    '3'=>'not testing');
     
     
    foreach($s as $cle=>$valeur) 
        { 
        echo $cle.' : '.$valeur.'<br />'; 
        }

  3. #3
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Merci pour ta réponse, mais le problème c'est que je remplis ma variable "$essai" de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $essai = "";
     
    if(machinchose){ $essai .= "un"; }
     
     
    if(machinchose){ $essai .= "deux"; }
     
     
    if(machinchose){ $essai .= "trois"; }
     
    etc....
    comment faire pour bien organiser le contenu, je ne cache pas que c la première fois que j'utilise les boucles comme ça.... ouuuuuuuu la honte pour moi.

  4. #4
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    Mais non! y a pas de honte à avoir voyons!

    En tous cas, dans l'exemple que je t'ai donné, pas besoin de la variable $essai!


    Dis nous ce que tu veux faire exactement!, j'ai pas compris pourquoi tu fais if machinchose $essai = "trois" etc...

  5. #5
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    En fait d'en un script php qui gère l'envoi de plusieurs images simultanément, je récupère les erreurs rencontrées.

    Genre cette image est trop grande, celle-ci est trop lourde, ce fichier n'as pas la bonne extension, celle-ci est bonne etc...

    clairement j'ai une liste d'images uploadées et je les traite dans une boucle pour faire de multiple verification.

    si dans la boucle certains traitements amènent à des erreurs je balance l'erreur dans ma variable "$erreur".

    elle se présente comme un tableau assocaitif :

    $erreur .= "'".$erreurtype."' => '".$fichiertraité."', ";
    voili voilou....

  6. #6
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    A vue d'oeil, je ferais un tableau (comme toi ui je sais^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $tab_error = array();
     
    //UPLOAD FILE 1
    //SI erreur
    $tab_error[] = "erreur lors de l'upload du fichier numéro un<br />";
     
    //UPLOAD FILE 2
    //SI erreur
    $tab_error[] = "erreur lors de l'upload du fichier numéro deux<br />";
     
     
    foreach($tab_error as $msg_error) {
        echo $msg_error;
    }
    Es-ce que j'ai bien tout compris?

  7. #7
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    édit : ok si c'est bon, merci pour ta réponse !

    bah pas trop j'ai l'impression il n'y a pas que deux possibilités.

    ma variable message s'incrémente au fil des erreurs.

    par conséquent au final je me retrouve avec quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $erreur = "size = > image1.jpg, weight = > image4.jpg, typefile => fichier.doc";
    le but étant de délivrer toutes les erreurs à la fin du traitement,
    comme :
    - le fichier image1.jpg n'a pas était charger sont poid doit être compris entre x et y.

    - le fichier fichier.doc n'a pas était charger nous acceptons que les fichiers de type image.

    etc......

  8. #8
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    Comme je te l'ai montré dans ma première réponse... tu as juste une erreur de syntaxe!!!

    au lieu de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //tu considères tout comme une chaine de caractère!!!
    $erreur = "size = > image1.jpg, weight = > image4.jpg, typefile => fichier.doc";
    Tu dois faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //ceci n'est qu'une facon de faire... un exemple
    $i=0;
    $erreur = array();
    $erreur[$i]['size'] = "image1.jpg";
    $erreur[$i]['weight'] = "etc";
     
    // Ne pas oublier d'incrémenter $i pour chaque upload.
     
    foreach($erreur as $value) {
        echo $value['size']."<br />";
        echo $value['weight']."<br />";
    }

  9. #9
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Bonjour,
    comme te l'a dis beejeridou, ta syntaxe n'est pas correcte
    $essai n'est qu'une chaîne de caractère, faire
    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $s = array( "'1' => 'not testing', '2' => 'not testing', '3' => 'not testing', '4' => 'not testing', '5' => 'not testing'");
    c'est comme mettre un et un seul élément du type string dans le tableau

    tu dois avoir en final, un code semblable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $essai = array();
    if(machinchose1) $essai['machinchose1'] = "un"; 
    if(machinchose2) $essai['machinchose2'] = "deux"; 
    if(machinchose3) $essai['machinchose3'] = "trois";
    //jusqu'à n
     
    foreach($essa as $cle=>$valeur){ 
        echo $cle.' : '.$valeur.'<br />'; 
     }

Discussions similaires

  1. [MySQL] Requêtes UPDATE dans boucles foreach avec array
    Par vinceom92 dans le forum PHP & Base de données
    Réponses: 67
    Dernier message: 16/03/2014, 21h29
  2. [Tableaux] Problème de foreach avec des checkboxes
    Par nanor21 dans le forum Langage
    Réponses: 10
    Dernier message: 15/05/2006, 01h04
  3. Probleme de type avec Array
    Par BECHE dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 23h05
  4. Petit probleme avec Arrays.Sort(...)
    Par Seth77 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 15/01/2006, 12h48
  5. création de tableaux avec Array() et élément 'fantome'
    Par Talieth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo