Bonjour à tous,
Soit un tableau de produits issu d'un form :
$prod[] :
Les ID produits sont donc 12,21,30 et 61
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Array ( [0] => 12 [1] => 21 [2] => 30 [3] => 61 )
A ce tableau correspond un autre tableau de codes promo :
$code_promo[] :
Le produit 12 a le code promo 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Array ( [0] => 2 [1] => 3 [2] => 2 [3] => 0 )
Le produit 21 le 3
Le produit 30 le 2
et le produit 61, pas de code promo.
On voit qu'il y a doublon et que le code promo 2 est appliqué 2 fois.
Toujours dans le même form, j'ai un checkbox prod_suppr[].
Si je coche le produit 30, j'obtiens ce tableau :
$prod_suppr :
Jusque là, rien de bien compliqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Array ( [0] => 30 )
Puis j'obtiens le nombre de produits à supprimer avec :
Je fais une boucle et je supprime cet élément du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $nb_prod_suppr = count($prod_suppr);
Très bien, je me retrouve avec le tableau $prod :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $f = $_POST; for($j=0;$j<$nb_prod_suppr;$j++){ unset($f['prod'][array_search($f['prod_suppr'][$j], $f['prod'])]); $f['prod'] = array_values($f['prod']); }
J'en viens à ma question : on voit que le produit supprimé est le 3ème du tableau $prod... comment faire pour supprimer également le 3ème élément du tableau $code_promo ? De façon à se retrouver avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Array ( [0] => 12 [1] => 21 [2] => 61 ) Dont le produit ID 30 a bien été supprimé.
la méthode unset / array_search que j'ai utilisée pour supprimer le produit ne fonctionne pas dans le tableau code_promo, je pense que c'est à cause du doublon 2, vu plus haut. Car le but n'est pas de supprimer la valeur 2 du tableau $code_promo mais la 3ème entrée.
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 $prod : Array ( [0] => 12 [1] => 21 [2] => 61 ) $code_promo : Array ( [0] => 2 [1] => 3 [2] => 0 )
Comment faire ?
En espérant avoir été assez clair dans mes explications....merci d'avance.
Partager