Probleme boucle for

Résolu
kimyoo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
 kimyoo -
Bonjour,

j'ai une boucle for comme l'indique ci-dessous
$data['number'] =  array("0"=>1, "1"=>2, "2"=>3, "3"=>4);
for($i=1;$i<=count($data['number']);$i++){
 
    foreach($data['parent'] as $parent){
     
            $parent->sub = $i;
    }
}

mon probleme comment faire pour incrementer "sub "de 1 vers 4 pour chaque catgorie

il m'affiche toujours 4 comme ça :
Array
(
[0] => stdClass Object
(
[cat_id] => 1
[cat_lib] => Détergent
[sub] => 4
)

[1] => stdClass Object
(
[cat_id] => 2
[cat_lib] => couche & papier
[sub] => 4
)[2] => stdClass Object
(
[cat_id] => 3
[cat_lib] => Emballage sous vide
[sub] => 4
)

[3] => stdClass Object
(
[cat_id] => 4
[cat_lib] => Produits cosmétiques
[sub] => 4
)
)
merci de bien vouloir m'apporter votre aide

A voir également:

1 réponse

Yuh12 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   24
 
Je vais plus essayer de t'expliquer pourquoi tu as ce résultat pour que tu puisses chercher plus facilement.

Tu fais un foreach dans un for.

Donc pour chaque boucle de ton for (soit 4 fois).
Il va faire un foreach des 4 cases de parent (soit 4 aussi) et il va ajouter $i aux 4.

Vu que tu fais un =$i et pas un +=$i il remplace a chaque fois donc il n'y a que la dernière boucle du for qui compte dans ton opération, les trois boucles précédentes sont écrasées.

A cette dernière boucle $i vaut 4 et tu lui dis de faire un foreach de parent et de remplacer chaque sub par $i donc 4.
0
kimyoo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Yuh12
Les début en programmation est vraiment dur et démotivant des fois
Merci encore une fois pour l'explication
parfait.
0
Yuh12 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   24
 
Avec plaisir :) ! Tu as trouvé du coup ?
0
kimyoo
 
j'ajoute une autre variable
for($i=1;$i<=count($data['number']);$i++){
$j=0;
foreach($data['parent'] as $parent){
$j++;
$parent->sub = $j;
}
}
0