Prob de sélection d'UNE ligne d'un Array
Posté : 26 oct. 2007, 11:17
Bonjour à tous
Je tente de faire un panier virtuel. Pour l'instant l'ajout d'article marche impec mais j'ai des soucis avec la suppression d'article. Le hic est qu'un article peut être inscrit dans la commande plusieurs fois mais avec des éléments différents. Donc si je supprime un article qui est commandé plus d'une fois : toutes les lignes correspondant à cette article sont effacés!
ma question est : peut-on dire en php qu'on veut supprimer toute la ligne inscrit en [0] ou [1] etc
pour appliquer une fonction qui ressemblerait à ceci :
Mais si je fais comme cette fonction avec $_SESSION['panier']['id'], toutes les lignes de cette article seront supprimés... Je voudrais plutôt (par exemple) supprimer la troisième ligne donc [2]. Est-ce possible??
merci de votre aide
Je tente de faire un panier virtuel. Pour l'instant l'ajout d'article marche impec mais j'ai des soucis avec la suppression d'article. Le hic est qu'un article peut être inscrit dans la commande plusieurs fois mais avec des éléments différents. Donc si je supprime un article qui est commandé plus d'une fois : toutes les lignes correspondant à cette article sont effacés!
Code : Tout sélectionner
["id"]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "8"
[2]=>
string(2) "10"
}
pour appliquer une fonction qui ressemblerait à ceci :
Code : Tout sélectionner
function supprim_article($liste_id, $reindex = true) {
$suppression = false;
$aCleSuppr = array_keys($_SESSION['panier']['id'], $liste_id);
/* sortie la clé a été trouvée */
if (!empty ($aCleSuppr)) {
/* on traverse le panier pour supprimer ce qui doit l'être */
foreach ($_SESSION['panier'] as $k=>$v) {
foreach($aCleSuppr as $v1) {
unset($_SESSION['panier'][$k][$v1]);
}
/* Réindexation des clés du panier si l'option $reindex a été laissée à true */
if($reindex == true) {
$_SESSION['panier'][$k] = array_values($_SESSION['panier'][$k]);
}
$suppression = true;
}
}
else {
$suppression = "absent";
}
return $suppression;
echo 'suppression effectuée';
} merci de votre aide