Suppression d'un élément dans un tableau (caddie/panier)

cs_davyboy Messages postés 18 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 juillet 2009 - 9 juil. 2009 à 00:36
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 10 juil. 2009 à 11:51
Hello, j'ai récupéré le code d'un panier PHP sur le JDN , http://www.journaldunet.com/developpeur/client-web/tutoriel-pratique/developper-un-caddie-avec-php/retirer-un-produit-du-caddie.shtml , tout fonctionne très bien, juste pour la suppression d'un item.

voici mon code avec à chaque étape des tests :
----------------------------------------------------
function SupprimeCaddie($ref) {
  print "ref =".$ref."
";
  if (array_key_exists($ref, $_SESSION['caddie'])) {
    echo "la clef '$ref' existe dans le tableau
";
}
  print_r(array_keys($_SESSION['caddie']));            
  $key = array_search($ref,$_SESSION['caddie']);     
  print "
key=".$key."
";        
  array_splice($_SESSION['caddie'], $key, 1); 
  print_r(array_keys($_SESSION['caddie']));
}

--------------------------------------------------
voici ce que cela affiche :

ref =30
la clef '30' existe dans le tableau
Array ( [0] => 30 [1] => 31 [2] => 32 ) keyArray ( [0]> 0 [1] => 1 )

------------------------------------------------
Il y a dans une couille dans le potage !
1) il ne trouve pas la key
2) quand il array_splice ça change les valeurs des autres items.

J'ai tout essayé et je comprends pas, PLEASE HELP ME !!!
Merci d'avance, Dave.

CerealKiller

1 réponse

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
10 juil. 2009 à 11:51
Bonjour,

function SupprimeCaddie( $ref )

{

  if (array_key_exists($ref, $_SESSION['caddie'])) {

    unset( $_SESSION['caddie'][$ref] ;

  } else {

    echo "Clé invalide" ;

  }

}
0
Rejoignez-nous