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 :

Supprimer un espace en fin de chaine au sein d'une boucle


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Supprimer un espace en fin de chaine au sein d'une boucle
    Bonjour à tous,

    J'ai un petit souci pour enlever le dernier caractère d'une chaine, sachant que celui-ci a été placé à l'intérieur d'une boucle. trim() et rtrim() ne fonctionnent pas et c'est assez logique. Mais comment me débarrasser de ce tout dernier caractère ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for($i=0;$i<count($_SESSION['ma_session]);$i++)
    {
    $item_number[$i] = $_SESSION['ma_session'][$i]['id']."-";//ajout tiret
    $item_number[$i] = rtrim($item_number[$i], "-");
    echo $item_number[$i];
    }
    Bref pour que cela ne donne pas 1-2-3-,
    ni 123, qui est le résultat de mon exemple.

    Merci de votre coup de pouce.

  2. #2
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    regarde la fonction substr cela devrait te permettre de t'en sortir, si tu l'utilise avec strlen.
    Tout énigme a une solution ! Tout est question de discipline !

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    merci du tuyau...mais je galère grave !!!
    t'aurais pas un petit exemple pour illustrer l'utilisation de ces 2 fonctions ? je te remercie

  4. #4
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine=substr ( ta_chaine  , 0 , 5  );
    substr va te prendre les 6 premiers caractere de ta chaine spécifiée (ta_chaine). Du coup apres tu fais ce que tu veux. Par exemple si tu as 1-2-3 et que tu veux avoir 123, il te suffit de prendre 1, puis 2 puis 3, puis de les concaténer
    L'eau est un liquide si corrosif, qu'une seule goutte suffit pour troubler le pastis.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $chaine="1-2-3-";
    $chaine=explode("-",$chaine);
    array_pop($chaine);
    $chaine=implode("-",$chaine);
    $chaine est égale à 1-2-3

  6. #6
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Citation Envoyé par luchk
    Tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $chaine="1-2-3-";
    $chaine=explode("-",$chaine);
    array_pop($chaine);
    $chaine=implode("-",$chaine);
    $chaine est égale à 1-2-3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $machaine = substr($machaine,0,strlen($machaine) - 1);
    est quand meme beaucoup plus rapide
    Tout énigme a une solution ! Tout est question de discipline !

  7. #7
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    C'est plus court substr? Quand j'ai vu l'autre solution j'aurais pas cru. Il y a plus de traitement à faire avec substr, mais si c'est plus rapide...
    L'eau est un liquide si corrosif, qu'une seule goutte suffit pour troubler le pastis.

  8. #8
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    en fait je parlais en code, mais vu que tu fais un explode, puis un array_pop et apres un implode, je pense que le substr est plus rapide, mais sur un si petit exemple cela va etre difficilement vérifiable.
    Tout énigme a une solution ! Tout est question de discipline !

  9. #9
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    ah ok, façon si c'est pour tirer un espace à la fin et que tu as une longueur déterminé, vaut surement mieux faire un substr... Si c'est réolu, coche cette case magique lol. A la prochaine
    L'eau est un liquide si corrosif, qu'une seule goutte suffit pour troubler le pastis.

  10. #10
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour à tous ceux qui m'ont répondu...et aux autres.
    J'ai dû m'absenter hier, mais là, je viens de tester les divers bouts de code que vous m'avez proposés.
    Y a un truc qui cloche...Ma session contient 2 id de 3 chiffres. Ca aurait pu être 3 id de 2 chiffres c'est idem. Le résultat dont j'ai besoin est du type
    525-654, ou, 22-45-96

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for($j=0;$j<count($_SESSION["ma_sess"]);$j++) //parcours de la session
    {
    $item_number[$j] = $_SESSION["ma_sess"][$j]['id']."-";//ajout du tiret
    $item_number[$j] = substr($item_number[$j],0,strlen($item_number[$j]) - 1);
    echo $item_number[$j]; 
    }
    ce bout de code, donne, selon mon premier exemple: 525654, il n'y a donc plus de tiret du tout. Mais je pense que c'est parce que, à chaque tour, la boucle l'ajoute et l'enlève. C'était, je crois, le problème de base. Mais je ne vois pas comment faire à part parcourir le contenu de ma session sans cette boucle...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    Salut
    Tu peux concatener dans la boucle, supprimer le "-" et afficher $item en dehors de la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for($j=0;$j<count($_SESSION["ma_sess"]);$j++) //parcours de la session
    {
    $item_number[$j] .= $_SESSION["ma_sess"][$j]['id']."-";//ajout du tiret
    }
    $item_number[$j] = substr($item_number[$j],0,strlen($item_number[$j]) - 1);
    echo $item_number[$j];
    Gaétan

  12. #12
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    euh...c'est à dire que hors de la boucle, $j perd un peu de sa valeur...

  13. #13
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    essaye plutot cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for($j=0;$j<count($_SESSION["ma_sess"]);$j++) //parcours de la session
    {
    $item_number[$j] = $_SESSION["ma_sess"][$j]['id']."-";//ajout du tiret
    }
    $item_number= substr($item_number,0,strlen($item_number) - 1);
    la tu virais le - a chaque boucle alors que tu veux l'enlever au final.
    Tout énigme a une solution ! Tout est question de discipline !

  14. #14
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Ben non ça peut pas fonctionner (Array to string conversion), et même si je déclare $item=array(), puisque ma boucle parcourt vraiment un tableau multi-dimensionnel. Il faut que j'arrive à stopper la boucle dans son dernier tour, et à ce moment là: lancer le substr...
    Quelle prise de chou !

  15. #15
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    si j'ai bien compris dans $item_number tu as une valeur par ligne.
    donc il te suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo implode("-",$item_number);
    Tout énigme a une solution ! Tout est question de discipline !

  16. #16
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    on y est presque...implode affiche 123--456, je comprends pas trop bien pourquoi...

  17. #17
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    que donne un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($item_number);
    ?
    Tout énigme a une solution ! Tout est question de discipline !

  18. #18
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Merci de ton intérêt pour mon post. Ca donne: string(8) 655--332

    je te remets mon code de la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    for($j=0;$j<count($_SESSION["panier"]);$j++)
    {
    $item_number[$j] = $_SESSION["panier"][$j]['id']."-";
    }
    $item_number = implode("-",$item_number); 
    $item_number= substr($item_number,0,strlen($item_number) - 1);
    echo var_dump($item_number);

  19. #19
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    De rien, ca me donne une idee un peu plus précise.
    sinon tu peux ajouter également
    un var_dump($_SESSION["panier"]);
    et ton resultat que tu souhaite ca ne serait pas "655-332" ?
    Tout énigme a une solution ! Tout est question de discipline !

  20. #20
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    le var_dump sur le $_SESSION ne donne rien...
    et, oui un résulatat du type 123-456 est exactement ce que je recherche !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegEx] Supprimer un point suivi d'espaces en fin de chaine
    Par pratiquement dans le forum Langage
    Réponses: 6
    Dernier message: 02/02/2008, 21h47
  2. Supprimer les espaces en fin de chaine
    Par mich44 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/01/2008, 22h41
  3. supprimer un caractere en fin de chaine
    Par makohsarah dans le forum Langage
    Réponses: 6
    Dernier message: 10/08/2006, 13h53
  4. comment supprimer des caracteres en fin de chaines
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2006, 17h41
  5. Supprimer les espaces en fin de chaine.
    Par KneXtasY dans le forum C
    Réponses: 5
    Dernier message: 26/12/2005, 10h33

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