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 :

Fonction rtrim dans un foreach ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Apprentie Ingénieur
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Apprentie Ingénieur

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Fonction rtrim dans un foreach ne marche pas
    Bonjour,

    J'ai un problème avec mon rtrim. Il ne s'applique que sur la dernière valeur de ma boucle. Quelqu'un aurait-il une piste, svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $l = explode("\n", $body);
            foreach ($l as $i => &$value) {
            	$value = rtrim($value,";");
            	$f = array_map('trim', explode(";", $value));
            	if (!in_array("", $f)){
            		array_push($list, $f);
            	}
            }
    PS , j'ai aussi essayé un de faire cette modif avant la boucle, mais ça ne marche pas non plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            array_walk($l, create_function('&$val', '$val = rtrim($val,\';\'); echo "$val \n";'));

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pourtant ça fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $a = [
       '    coucou',
       ' laaaalalala    ',
       'gniiiitoutou    ',
    ];
     
    $a = array_map( create_function( '$s', 'return trim( $s );' ), $a );
     
    print_r($a);

  3. #3
    Membre à l'essai
    Femme Profil pro
    Apprentie Ingénieur
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Apprentie Ingénieur

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Je m'excuse de ne pas avoir précisé ce qui ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value = rtrim($value,";");
    C'est plutot celui là qui ne marche pas. Je veux enlever touts les point virgules supplémentaires de la chaine avant de les passer à l'array_map (qui fera le explode puis trim).

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Peux-tu donner un petit jeu de données ? Genre un tableau de 3/4 entrées en faisant par exemple un var_export() de $l.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Apprentie Ingénieur
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Apprentie Ingénieur

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai fait un var_export dans la boucle juste après le rtrim.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    array (
      0 => '29212COA;29212COA;B+;1x64;100;150000;720;
    ',
      1 => '29212COA;29212BTP;B+;1x64;100;150000;720;
    ',
      2 => '29212COA;29130LPZ;B+;1x64;100;150000;720;
    ',
      3 => '29212COA;29212PZ2;B+;1x64;100;150000;720;
    ',
      4 => '29019BRC;29019BRC;B+;1x64;95;150000;720;
    ',
      5 => '29019BRC;29019BRN;B+;1x64;95;150000;720;
    ',
      6 => '29019BRC ;29019BRO;B+;1x64;95;150000;720;
    ',
      7 => '29019BRC;29019BRE;B+;1x64;95;150000;720;
    ',
      8 => '29061GNO;29061GNO;B+;1x64;100;150000;720;
    ',
      9 => '29061GNO;  29019BC4;B+;1x64;100;150000;720;
    ',
      10 => '22278SBR;22278SBR;B+;1x64;95;25000;720;
    ',
      11 => '22278SBR;22106LGX;B+;1x64;95;25000;720;
    ',
      12 => '22278SBR;22187PIN;B+;1x64;95;25000;720',
    )
    A part la dernière occurrence, ils ont tous un point virgule à la fin...

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Comme tu peux le voir sur ton var_export(), le ; n'est pas le dernier caractère des autres lignes de ton tableau. Tu as un caractère retour chariot juste après. Donc le rtrim() ne fonctionne pas, ce qui est normal.

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

Discussions similaires

  1. [MySQL] pas d'erreur mais l'insertion dans la base ne marche pas bien
    Par info_sara dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/05/2008, 14h55
  2. Fonction sql Round(N,n) ne marche pas ?
    Par quanou dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2008, 09h07
  3. PB VBA : ecriture dans une feuille active => marche pas !
    Par MeHo_ dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/01/2008, 16h47
  4. fonction onClick= dans IE6 ok Firefox fonctionne pas
    Par rejy_l'Édimestre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/08/2007, 21h58
  5. requête dans acces qui ne marche pas...
    Par sam01 dans le forum Access
    Réponses: 3
    Dernier message: 14/12/2005, 16h48

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