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] Question sur les tableaux


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut [Tableaux] Question sur les tableaux
    Bonjour,

    Je voudrais savoir si il est possible d'effacer une entrée dans un tableau.
    Je m'explique :

    Avant :

    Array(

    "1" => Pomme
    "2" => Poire
    "3" => Peche

    )


    Aprés :

    Array(

    "1" => Pomme
    "3" => Peche

    )
    Voila j'aimerais pouvoir enlever l'entree Poire du tableau mais comment peut on faire cela.

    Merci a vous

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tout simplement

  3. #3
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    je pense que si je met Poire au lieu de 2 ca marchera ?

    Merci a toi

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    non, car Poire est la valeur de $array['2'] !

    en fait, unset supprime la variable que tu lui passe, dans ce cas, il s'agit de $array['2'], $array['Poire'] n'existe pas car 'Poire' est une valeur

  5. #5
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Serait il possible de supprimer l'entree avec ca valeur alors ?

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Tu peux parcourir ton tableau pour recuperer la clé correspondant à la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $tab = ... // Ton tableau rempli
    $recherche = 'poire' ;
     
    foreach($tab as $key=>$value)
    {
      if($value == $recherche)
        unset($tab[$key]) ;
    }

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    arf, Sylvain71 a été plus rapide, en effet, il faut faire une recherche, kke chose de ce type pourrait peut-être être plus utile/performant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($array[array_search('Poire', $array)]);
    ATTENTION : si ton tableau à un indice FALSE, cela peut entrainer de graves effets de bord, vérifie que la valeur existe bien avant

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function del_in_array(&$array, $value)
    {
       if(!in_array($value, $array)) return false;
       unset($array[array_search($value, $array)]);
       return true;
    }

  8. #8
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci a vous pour votre aide

  9. #9
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    De rien, content d'avoir pu aider

  10. #10
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Juste une autre petite question si quelqu'un est dans les parages aprés avoir supprimer ma valeur du tableau comment faire en sorte que les clefs se refont car dans mon exemple mon tableau de contient plus de clef 2 et si je boucle sur mon tableau ca me fais une case vide a 2 car mon tableau passe de 1 à 3.

    Merci a vous !

  11. #11
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Dans ce cas là, il faut utiliser une boucle foreach à la place de la boucle for

    ou alors mais c'est plus lourd mais ne t'oblige pas à modifier tout ton programme, il faut parcourir ton tableau pour changer tous les indices



    Pierre

  12. #12
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ou alors il y a ça : http://fr.php.net/manual/fr/function.array-values.php

    mais c'est vrai que le foreach est le mieux qd mm

  13. #13
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Citation Envoyé par Swoög
    ou alors il y a ça : http://fr.php.net/manual/fr/function.array-values.php

    mais c'est vrai que le foreach est le mieux qd mm
    Tiens une fonction des tableaux que je n'ai pas encore utilisé. Je la note pour plus tard

  14. #14
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bon j'ai essayé la boucle foreach et l'array-values ca marche pas.

    foreach($TabModifer as $element)
    {
    $Test.= $element.",";
    }
    Est ce que le probléme est que je rajoute quelque chose a la suite des element du tableau mais de toute facon il me laisse toujours un trou et c'est relou .

    Merci de votre aide.

  15. #15
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Recupère la clé avec les méthodes citées plus haut (pour l'exemple j'utilise $key) et tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_splice($tableau,$key,1);
    où $tableau représente ton tableau. Cela effacera ton entrée et reconstruira ton tableau.

  16. #16
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci, Merci encore merci

  17. #17
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    N'oublie pas le résolu alors et heureux de t'avoir aider

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

Discussions similaires

  1. Question sur les tableaux
    Par Fendal dans le forum C
    Réponses: 7
    Dernier message: 10/08/2007, 11h57
  2. question sur les tableaux
    Par scolopendra dans le forum Langage
    Réponses: 4
    Dernier message: 12/06/2007, 15h15
  3. Question sur les tableaux
    Par Chii-san dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/03/2007, 11h48
  4. Réponses: 9
    Dernier message: 13/06/2006, 21h52
  5. question sur les tableaux
    Par Neko dans le forum C++
    Réponses: 13
    Dernier message: 14/02/2006, 02h21

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