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 :

[Tableaux] Chaîne de caractères et suppression ...


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut [Tableaux] Chaîne de caractères et suppression ...
    Bonjour à tous, voici mon problème : dans ma base jai des champs contenant des variables texte sous la forme 1/2/11/4/21 ...
    et je souhaiterai supprimer l'un de ces chiffres quand je veux.

    Exemple pour le chiffre 11 : 1/2/11/4/21 -> 1/2/4/21

    J'ai déjà fait un script qui arrive à effacer ce qu'il y a entre "/" mais lorsque le chiffre est en début ou fin des variables je n'y arrive plus.

    Dans ma page jer ecupère la variable sous la forme 1/2/6/11/21/ ... et je recupere la variable à enlever sous la forme "chiffre".

    Voici mon code qui fonctionne uniquement pour les chiffre entre "/" et ceux qui se trouvent en fin de variable sous la forme: "chiffre/"

    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
     
    $tab = ma variable sous la forme 1/2/3/4
    et IdSup est la variable a enlever
     
                    $tab = explode('/',$IdRoleApplicatif); 
    	$Ids = implode(' ',$tab); 
    	$IdRoleApplicatif=ereg_replace(" "."$IdSup"." "," ",$Ids);
    	$tab2 = explode(' ',$IdRoleApplicatif); 
    	$Ids2 = implode('/',$tab2); 
     
    	$tab = explode('/',$IdRoleApplicatif); 
    	$Ids = implode(' ',$tab); 
    	$IdRoleApplicatif=ereg_replace("$IdSup"." ","",$Ids);
    	$tab2 = explode(' ',$IdRoleApplicatif); 
    	$Ids2 = implode('/',$tab2); 
     
    	$tab = explode('/',$IdRoleApplicatif); 
    	$Ids = implode(' ',$tab); 
    	$IdRoleApplicatif=ereg_replace(" "."$IdSup","",$Ids);
    	$tab2 = explode(' ',$IdRoleApplicatif); 
    	$Ids2 = implode('/',$tab2); 
     
    	echo $Ids2;
    	exit();

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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
    28
    29
    <?php
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "1";
     
    $tab = explode('/', $string);
    unset($tab[array_search($value, $tab)]);
    echo implode('/', $tab)."<br>";
     
     
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "6";
     
    $tab = explode('/', $string);
    unset($tab[array_search($value, $tab)]);
    echo implode('/', $tab)."<br>";
     
     
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "21";
     
    $tab = explode('/', $string);
    unset($tab[array_search($value, $tab)]);
    echo implode('/', $tab)."<br>";
     
     
    ?>
    C'est fait au plus court, donc il faut décomposer pour vérifier que le array_searche retourne une bonne valeur.

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Une autre version sans passer par les tableaux (préférable à mon avis)
    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
    28
    29
    30
    <?php
     
     
    function suppr($value, $where) {
        $search  = array('|^'.$value.'/|', '|/'.$value.'/|', '|/'.$value.'$|');
        $replace = array('', '/', '');
        return preg_replace($search, $replace, $where);
    }
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "1";
     
    var_dump(suppr($value, $string));
     
     
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "6";
     
    var_dump(suppr($value, $string));
     
     
     
    //------------------------------
    $string = "1/2/6/11/21";
    $value  = "21";
     
    var_dump(suppr($value, $string));
     
    ?>
    A optimiser bien sur (définition des patterns entre autres)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    MERCIIIIIIII

    Juste avec çà :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tab = explode('/', $string); 
    unset($tab[array_search($value, $tab)]); 
    $Valeur = implode('/', $tab); 
    echo $Valeur;
    exit;
    J'ai exactement ce que je voulais , merci beaucoup !!!!

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    ben ne le prend pas tel quel ! si une valeur n'existe pas tu supprimera le premier (en tout cas dans mon test)
    Je te conseil de passer par la deuxième solution, je pense que ce sera plus rapide...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    Merci beaucoup, je garde tes scripts sous la main pour les tester.

    En te remerciant une nouvelle fois, Bonne Journée.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/08/2008, 16h26
  2. [Tableaux] chaînes de caractères : pliage
    Par dactar dans le forum Langage
    Réponses: 5
    Dernier message: 25/07/2006, 13h35
  3. [Tableaux] Opération sur chaîne de caractères
    Par kespy13 dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2006, 14h32
  4. Suppression de chaînes de caractères
    Par Furius dans le forum Windows
    Réponses: 24
    Dernier message: 03/11/2005, 15h30
  5. Réponses: 13
    Dernier message: 17/10/2005, 15h32

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