suppression dans un array (tableau) [modifié]

suppression dans un array (tableau) [modifié] - PHP - Programmation

Marsh Posté le 26-04-2009 à 21:28:26    

salut tout le monde,
 
apparement ce probleme ne vous dis rien ... donc j'édite.
 
je me suis rapproché de la solution, j'arrive a peu pres a faire ce que je veux
mais j'ai un probleme en ce qui concerne les index dans mon tableau.
 
exemple :
j'ai 5 articles dans mon panier, numérotés de 0 à 4 car c'est un tableau ...
je supprime le dernier de la liste (le 5eme donc d'indice 4), le deuxieme article (d'indice 1) est supprimé  :??:  
ensuite je supprime le troisieme (indice 2), c'est encore le deuxieme article (d'indice 1) qui est supprimé  :??: :??:
si vous avez suivi, il doit me rester 3 articles ...
je supprime donc le premier (indice 0), là c'est bien le premier qui est supprimé   :love:  
maintenant je supprime le deuxieme (indice 1, le dernier de la liste), mais là c'est le premier article (d'indice 0) qui est supprimé :pt1cable:  
enfin, le seul restant se supprime normalement
 
je vous met le code pour voir quel est le defaut :
 
// ------- EFFACER UN ARTICLE DU PANIER -------- \\
 
// si le lien "supprimer" est cliqué
if ($_GET['retirer'] == "RETIRER" )
{
 
// si le panier existe et qu'il contient un nombre de produits superieur ou egal à 1
 if(isset($_SESSION['panier']) && count($_SESSION['panier']) >= 1)
 {
 
// pour $i de 0 à inferieur ou egal au nombre total de produits dans le panier,  
// on ajoute 1 a $i apres chaque ligne
  for ($i=0; $i <= count($_SESSION['panier']); $i++)
  {
   
// si la clé contenue dans $i existe dans le tableau panier  
   if(array_key_exists($i, $_SESSION['panier']))
   {
   
// si la variable index est egale au code produit d'indice $i
    if($_GET['index'] == $_SESSION['panier'][$i][0])
    {
     $tab = array_splice($_SESSION['panier'], $_SESSION['panier'][$_GET['index']], 1);
     array_merge_recursive($tab,$_SESSION['panier']);
     //$_SESSION['n']=0;
     array_values($_SESSION['panier']);
    }
   }      
  }
 }
}
 // si le panier existe et qu'il est vide
 if(isset($_SESSION['panier']) && empty($_SESSION['panier']))
 {
  unset($_SESSION['panier']);
  unset($_SESSION['n']);
 }
 
voila merci de m'avoir lu et merci d'avance pour votre aide


Message édité par maxlandx le 28-04-2009 à 13:40:28
Reply

Marsh Posté le 26-04-2009 à 21:28:26   

Reply

Marsh Posté le 28-04-2009 à 13:41:16    

ptit up

Reply

Marsh Posté le 28-04-2009 à 17:02:53    

toujours personne ?  
 
...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed