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 éclairé 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
    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 confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    tout simplement
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éclairé 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
    Par défaut
    je pense que si je met Poire au lieu de 2 ca marchera ?

    Merci a toi

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre éclairé 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
    Par défaut
    Serait il possible de supprimer l'entree avec ca valeur alors ?

    Merci

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

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    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 confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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;
    }
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  8. #8
    Membre éclairé 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
    Par défaut
    Merci a vous pour votre aide

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    De rien, content d'avoir pu aider
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  10. #10
    Membre éclairé 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
    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 émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    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 confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    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 éclairé 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
    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 émérite 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
    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 éclairé 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
    Par défaut
    Merci, Merci encore merci

  17. #17
    Membre émérite 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
    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, 12h57
  2. question sur les tableaux
    Par scolopendra dans le forum Langage
    Réponses: 4
    Dernier message: 12/06/2007, 16h15
  3. Question sur les tableaux
    Par Chii-san dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/03/2007, 12h48
  4. Réponses: 9
    Dernier message: 13/06/2006, 22h52
  5. question sur les tableaux
    Par Neko dans le forum C++
    Réponses: 13
    Dernier message: 14/02/2006, 03h21

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