Probleme boucle for

Résolu
kimyoo Messages postés 43 Statut Membre -  
 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

1 réponse

  1. Yuh12 Messages postés 186 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
    1. kimyoo Messages postés 43 Statut Membre
       
      Merci Yuh12
      Les début en programmation est vraiment dur et démotivant des fois
      Merci encore une fois pour l'explication
      parfait.
      0
    2. Yuh12 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   24
       
      Avec plaisir :) ! Tu as trouvé du coup ?
      0
    3. 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