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 élément d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut Supprimer élément d'un tableau
    Bonjour à tous,

    J'ai un tableau $tab composé de phrases diverses. (récupéré après un $tab=file($path.$file))

    Je souhaiterai supprimer les éléments de ce tableau qui contiennent la chaine 'toto' (par exemple).

    J'arrive bien à supprimer l'élément du tableau qui a pour valeur 'toto' mais pas l'élément qui a pour valeur 'toto test titi'

    Merci pour votre aide.

    CC

  2. #2
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut
    Bonsoir,

    On pourrait avoir un bout de code ?

    Merci et bonne soirée,
    Alexis

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu pourrais, avec array_walk, mettre la valeur nulle pour chaque élément du tableau contenant "toto" puis ensuite supprimer les éléments vides du tableau
    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 = array('titi','toto tata','tutu','toto');
     
    function test_alter(&$item1, $key, $prefix)
    {
        $item1 = strpos($item1,$prefix) !== false ? null : $item1;
    }
     
     
    array_walk($tab, 'test_alter', 'toto');
     
    $tab = array_filter($tab);//supprime les éléments null ou vide ou false
     
    $tab = array_merge($tab);// en option si besoin pour réindexer le tableau
     
    print_r($tab);
    sinon faire une boucle basique en créant un tableau de résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $tab = array('titi','toto tata','tutu','toto');
    $tab_result = array();
    $sup = 'toto';
     
    foreach($tab as $key =>$value)
    if(strpos($value,$sup) === false) $tab_result[$key] = $value;
     
    print_r($tab_result);

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut
    Merci pour vos réponses.
    Je teste tout ca et vous tiens informé.

    Merci encore.

    CC

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Le seul truc de cette solution c'est que si tu as un élément de tableau sous la forme "azetototy", ça va le supprimer également. Si tu ne le souhaites pas on avisera

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut
    je ne devrai pas entrer dans ce cas la.
    Merci pour cette précision.

    CC

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    En cas de besoin et comme ce n'est pas compliqué je te donne une solution pour cette option :

    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
    $tab = array('titi','toto tata','tutu','toto','azetototy');
     
    function test_alter(&$item, $key, $prefix)
    {
        $tab_mots = explode(' ',$item);
        $item = in_array($prefix,$tab_mots)? null : $item;
    }
     
    $sup = 'toto';
    array_walk($tab, 'test_alter', $sup);
     
    $tab = array_filter($tab);//supprime les éléments null ou vide ou false
     
    $tab = array_merge($tab);// en option si besoin pour réindexer le tableau
     
    echo '<pre>';
    print_r($tab);
    echo '</pre>';
    Dans ce cas il faut que "toto" soit isolé par un (ou deux) espaces pour supprimer l'élément du tableau.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut
    Super Merci, ca fonctionne correctement.

    J'ai utilisé le code suivant que j'ai inséré dans une boucle foreach pour supprimer du tableau initial ($tab) plusieurs valeurs.

    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
     
    function test_alter(&$item, $key, $prefix)
    {
        $tab_mots = explode(' ',$item);
        $item = in_array($prefix,$tab_mots)? null : $item;
    }
     
     
    $sup = array('GUI','SECURE');
     
     
    foreach($sup as $value)	
    {
    		array_walk($tab, 'test_alter', $value);
    		$tab = array_filter($tab);//supprime les éléments null ou vide ou false
    		$tab = array_merge($tab);// en option si besoin pour réindexer le tableau
    }
    En revanche, dans les valeurs a supprimer, je souhaiterai ajouter les lignes vides. (pour rappel, le tableau $tab est le resultat d'un parse de fichier, dans ce fichier certaines lignes sont vides, et je ne souhaiterai pas qu'elles soient prises en compte)

    Pour info, lorsque je fais un VI de ce fichier, je vois dans mon terminal le caractère suivant : ^M

    J'ai testé avec :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sup = array('GUI','SECURE','\n');
    $sup = array('GUI','SECURE','\r');
    Mais ca ne fonctionne pas.

    Merci,


    CC

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

Discussions similaires

  1. Supprimer élément d'un tableau
    Par totot dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 01/11/2014, 13h03
  2. Supprimer éléments d'un tableau
    Par liline150 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 02/09/2007, 14h51
  3. [Tableaux] supprimer un élément d'un tableau
    Par banzzai dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2006, 15h52
  4. Réponses: 2
    Dernier message: 27/05/2006, 19h08
  5. Supprimer un élément d'un tableau
    Par CaptainChoc dans le forum Langage
    Réponses: 15
    Dernier message: 23/12/2002, 23h14

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