Bonjour,
J'aimerais bien savoir la différence entre 2 codes qui donne la même chose.
1er code, ci-dessous,que j'ai fait avec While :
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
19
20
21
22
23
24
25
26
27
28
$compteur = count($data_json_obj_array['produits'] );
$i = 0;																	
while ($i < $compteur)
	{
		foreach ($data_json_obj_array['produits'] as $val_color) 
			{
				switch($val_color['color'])
				 {
					 case 'red' :
						echo '<p>Rouge</p>';
						break;
 
					case 'orange' :
						echo '<p>Orange</p>';
						break;
 
					case 'purple' :
						echo '<p>Violet</p>';
						break;
 
					default:
					   echo '<p>Inconnu</p>';
 
 
				 }
			$i++;
			}	
	}
2e même code, mais sans la boucle while :
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
19
20
21
22
23
24
$data_json_obj_array = json_decode($data_json_obj, true);
 
	foreach ($data_json_obj_array['produits'] as $val_color) 
		{
			switch($val_color['color'])
			 {
				 case 'red' :
					echo '<p>Rouge</p>';
					break;
 
				case 'orange' :
					echo '<p>Orange</p>';
					break;
 
				case 'purple' :
					echo '<p>Violet</p>';
					break;
 
				default:
				   echo '<p>Inconnu</p>';
 
 
			 }
	}
même résultat :
Rouge
Rouge
Orange
Violet
Orange
Inconnu
Je me suis un peu perdu : pour choisir l'un de deux.
En fait, j'ai utilisé la 1re parce que je pensais ainsi.
Ensuite, par curiosité, j'ai supprimé le while pour voir si cela marche. Et je vois que la 2e marche aussi.
Du coup, je ne sais pas si les deux exactement la même chose, mais 2e est plus épuré ?
Que vous pensez ?
Merci

Voici le code avec la data :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
$data_json_obj = '{
   "commande": "12578",
   "name": "toto",
   "produits": [
      {
         "grams": 0,
         "product_id": 11111,
         "name": "tomate",
         "color": "red"
      },
      {
         "grams": 1000,
         "product_id": 11112,
         "name": "pomme",
         "color": "red"
      },
      {
         "grams": 1000,
         "product_id": 11114,
         "name": "orange",
         "color": "orange"
      },
      {
         "grams": 2050,
         "product_id": 11113,
         "name": "aubergine",
         "color": "purple"
      },
      {
         "grams": 1000,
         "product_id": 11162,
         "name": "carotte",
         "color": "orange"
      },
      {
         "grams": 1000,
         "product_id": 11115,
         "name": "patate",
         "color": ""
      }
   ]
}';
 
$data_json_obj_array = json_decode($data_json_obj, true);
echo '<h1>avec while</h1>';
$compteur = count($data_json_obj_array['produits'] );
$i = 0;																	
while ($i < $compteur)
	{
		foreach ($data_json_obj_array['produits'] as $val_color) 
			{
				switch($val_color['color'])
				 {
					 case 'red' :
						echo '<p>Rouge</p>';
						break;
 
					case 'orange' :
						echo '<p>Orange</p>';
						break;
 
					case 'purple' :
						echo '<p>Violet</p>';
						break;
 
					default:
					   echo '<p>Inconnu</p>';
 
 
				 }
			$i++;
			}	
	}
 
echo '<h1>Sans while</h1>';
	foreach ($data_json_obj_array['produits'] as $val_color) 
		{
			switch($val_color['color'])
			 {
				 case 'red' :
					echo '<p>Rouge</p>';
					break;
 
				case 'orange' :
					echo '<p>Orange</p>';
					break;
 
				case 'purple' :
					echo '<p>Violet</p>';
					break;
 
				default:
				   echo '<p>Inconnu</p>';
 
 
			 }
	}