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] Supprimer élement d'un Tableau [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut [Tableaux] Supprimer élement d'un Tableau
    Bonjour,

    j'ai un petit tableau en php qui est rempli que par des chiffres, qui sont tous différents.

    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = array(21, 32, 673, 14, 58);
    je cherchais donc une fonction qui permettait de supprimer par exemple 32.

    J'ai trouvé une fonction.

    je vous la mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tab = array('world','hello','good');
       $element = 'hello';
     
       unset($tab[array_search($element, $tab)]);
       $nouveau_tableau = array_shift($tab) ;
    moi j'ai rajouter une boucle pour afficher tout ce qu'il y a dans le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $tab = array('world','hello','good');
    $element = 'hello';
     
    unset($tab[array_search($element, $tab)]);
    $nouveau_tableau = array_shift($tab) ;		
    for($j=0;$j<sizeof($nouveau_tableau);$j++) 
    {
    print "<br />".$nouveau_tableau[$j];
    }
    // ça ne m'affiche que W
    Mais chez moi elle affiche que W.

    Pouvez vous la tester est me dire si vous avez le même résultat ?

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    C'est normal que ça affiche w puisque quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nouveau_tableau = array_shift($tab) ;
    dans $nouveau_tableau, tu as alors "world" (premier élément du tableau $tab).

    Ensuite, dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($j=0;$j<sizeof($nouveau_tableau);$j++)
    sizeof($nouveau_tableau) est égal à 1 (1 seul élément).

    Et donc, quand tu affiches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {
    print "<br />".$nouveau_tableau[$j];
    }
    $nouveau_tableau[0] est la première lettre de world.

    Par contre, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tab = array('world','hello','good');
    $element = 'hello';
     
    unset($tab[array_search($element, $tab)]);
    foreach ($tab as $val) {
    	$nouveau_tableau[]=$val;
    }
    // $nouveau_tableau = array_shift($tab) ;		
    for($j=0;$j<sizeof($nouveau_tableau);$j++) {
    	print "<br />".$nouveau_tableau[$j];
    }
    Fred

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    moi j'avais fais ça en attendant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $key = array_search(monchiffre, $tab);
    unset($tab[$key]);
    merci ton code fonctionne aussi.

    En fait j'ai un petit soucis avec ce script car mon but est de supprimer un chiffre qui est dans mon cookie.

    donc je récupère mon cookie et je stocke dans un tableau les chiffres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_COOKIE["md10"]))
    {
    $liste = $_COOKIE["md10"]; 
    print "la liste de mon cookie : ".$liste;  //24,374,22

    mais j'essaie de faire un petit traitement pour effacer l'id que je passe en paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idannonce = $_GET['idannonce']; //je recupere l'id à enlever du cookie
    mais le soucis c'est que j'arrive a regénéré ma liste d'id pour le mettre ensuite dans le cookie que pour le dernier id de la liste.

    je mexplique pour la liste:
    mon cookie :24,374,22
    mon nouveau : 24,374 // ça fonctionne

    sinon pour enlever 24 ou 374 c'est impossible...

    mon code:

    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
    31
    <?php
    if	(isset($_GET['idannonce']))
    {
    	$idannonce = $_GET['idannonce'];
    	if (isset($_COOKIE["md10"]))
    	{
    	$liste = $_COOKIE["md10"]; 
    	print "la liste de mon cookie : ".$liste; 
    	$tab = explode ( ',', $liste );
     
    	$key = array_search($idannonce, $tab);
    	unset($tab[$key]);
     
    	$init =(count($tab)) - 1;
    	$final="";
    			for($j=0;$j<sizeof($tab);$j++) 
    			{
     					if($j == 0)
    					{ 
    					$final = $tab[$j];
    					}
    					else 
    						{
    						$final = $final.",".$tab[$j];
    						} 
    			}
    	print "<br />le cookie final: ".$final;
     
    	}
    }
    ?>

  4. #4
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    J'ai utilisé la syntaxe foreach pour reconstruire le tableau sans le "trou" :
    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
    // A remplacer par la gestion  de ton cookie
    $idannonce = 24;
    $liste = "24,362,374"; 
    // FIN à remplacer par la gestion de ton cookie
     
    print "la liste de mon cookie : ".$liste; 
    $tab = explode ( ',', $liste );
     
    $key = array_search($idannonce, $tab);
    unset($tab[$key]);
     
    // Je crée un nouveau tableau sans 'trou'
    $newTab=array();
    foreach ($tab as $val) {
    	$newTab[]=$val;
    }
    // Je reconstruit la liste pour mon cookie
    $final = implode(',',$newTab);
     
    print "<br />le cookie final: ".$final;
    Et là je n'ai aucun problème quel que soit le cookie supprimé.

    Est-ce que c'est ce que tu voulais faire ?

    Fred

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    Je me suis vraiment pris la tête la dessus et toi tu arrives et ça fonctionne ...



    Vraiment un grand merci.

    Bon fin de weekend.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/08/2009, 15h05
  2. Réponses: 5
    Dernier message: 02/07/2007, 15h28
  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. [Tableaux] Supprimer 1 élément particulier d'1 tableau
    Par harlock59 dans le forum Langage
    Réponses: 22
    Dernier message: 17/05/2006, 16h50
  5. [Tableaux] Supprimer une clé d'un tableau
    Par Anduriel dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2005, 21h04

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