Effacer un élement d'une session

Petit nouveau ! | 3 Messages

16 déc. 2022, 22:58

Bonjour, je souhaite effacer qu'un seul élément d'une session, savez vous comment je peux faire ? par exemple, juste effacer l'ID "77837" qui correspond à l'orange

```
array (size=2)
'panier' =>
array (size=5)
'id_produit' =>
array (size=2)
0 => string '77837' (length=5)
1 => string '77838' (length=5)
'nomProduit' =>
array (size=2)
0 => string 'Orange' (length=6)
1 => string 'Petits pois' (length=11)
'prix' =>
array (size=2)
0 => string '4' (length=1)
1 => string '5' (length=1)
'quantite' =>
array (size=2)
0 => int 7
1 => string '1' (length=1)
'photo' =>
array (size=2)
0 => string '/commerce/photo/1_5E_fruit1.jpg' (length=31)
1 => string '/commerce/photo/2_45465_H9OXRF0E_legume1.jpg' (length=44)
```
Merci d'avance

Mammouth du PHP | 2703 Messages

16 déc. 2022, 23:01


Petit nouveau ! | 3 Messages

16 déc. 2022, 23:12

Merci pour la réponse, mais je ne trouve pas de solution sur ce site, j'ai déjà regardé.
Je sais comment unset une session entière, mais pas un élément dedans précisement
J'ai essayé ça:

Code : Tout sélectionner

if(isset($_POST['id'])) { $id = $_POST['id']; echo "ok"; unset($_SESSION["panier"]['id_produit'][$id]); }
Mais rien, j'ai essayé de retirer [$id] mais il me supprime que le tableau id_produit dedans.
On peut supprimer tout par rapport à l'id par exemple ?

Mammouth du PHP | 2703 Messages

16 déc. 2022, 23:36

0 => string '77837' (length=5)
l'index est donc 0, pas 77837, donc $_SESSION["panier"]['id_produit'][$id] ne doit pas exister.

Petit nouveau ! | 3 Messages

16 déc. 2022, 23:48

J'ai fais ça aussi:
unset($_SESSION["panier"]['id_produit'][0]);

Mais du coup ça m'oblige a préciser l'index... ce que je ne veux pas avoir à faire

Mammouth du PHP | 2703 Messages

16 déc. 2022, 23:50

revoir la structure ou boucler pour tester la valeur afin de trouver le bon élément.