Repository navigation
Expand file tree
/
Copy path14-foreach.php
More file actions
96 lines (95 loc) · 3.3 KB
/
Copy path14-foreach.php
File metadata and controls
96 lines (95 loc) · 3.3 KB
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
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>foreach</title>
</head>
<body>
<h1>Foreach est une façon simple de parcourir des tableaux ou les objets</h1>
<h2>Sur un tableau indexé</h2>
<h3>Que la valeur avec "as $value"</h3>
<pre>foreach ($stagiaires as $valeur){
echo "$valeur | ";
}</pre>
<?php
// tableau contenant tous les stagiaires de la classe
$stagiaires = ["Mattia","Karim","Lorenzo","Bryan","Laetitia","Rocio","Audrey","Marjorie","Jessica","Alain","Jonathan","Chihab","Kieran","Adrien","Clovis","Thomas","Saadallah","Virgile",];
// on va juste récupérer les valeurs et les afficher, le "as" crée un alias qui est modifié à chaque itération, tant qu'on a des éléments dans le tableau
foreach ($stagiaires as $valeur){
echo "$valeur | ";
}
echo "<hr>";
?>
<h3>La clef PUIS la valeur avec "as $key => $value"</h3>
<pre>foreach ($stagiaires as $clef => $valeur){
echo "$clef) $valeur | ";
}</pre>
<?php
// on va juste récupérer les valeurs et les afficher, le "as" crée un alias qui est modifié à chaque itération, tant qu'on a des éléments dans le tableau
foreach ($stagiaires as $clef => $valeur){
echo "$clef => $valeur | ";
}
echo "<hr>";
?>
<h4>Sur un tableau réellement indexé, on peut aussi utiliser les boucles for, while et même do while</h4>
<h5>Exemple avec for</h5>
<?php
// count compte le nombre d'élément d'un tableau, si le tableau ne change pas de nombre de valeurs pendant la structure itérative, il vaut mieux éviter de le mettre dans la condition du for pour éviter qu'on recompte le nombre d'éléments dans le tableau à chaque itération. !!! count compte à partir de 1!
$nb_stagiaires = count($stagiaires); // 18
echo '$nb_stagiaires, équivalent à count($stagiaires) vaut : '.$nb_stagiaires;
echo "<hr>";
// de 0 à 17 (les clefs du tableau)
for($i=0;$i<$nb_stagiaires;$i++){
echo "$i => $stagiaires[$i] | ";
}
?>
<p>Vous vous dites "inutile" d'utiliser le for alors qu'on a foreach, le for peut être plus rapide sur un tableau indexé car, si on a pas besoin de toutes les valeurs, le nombre d'itération sera réduite</p>
<p>Exemple: afficher les 3 premiers</p>
<pre>for($i=0;$i<3;$i++){
echo "$i => $stagiaires[$i] | ";
}</pre>
<?php
for($i=0;$i<3;$i++){
echo "$i => $stagiaires[$i] | ";
}
?>
<p>Exemple: afficher un stagiaire sur 2</p>
<pre>for($i=0;$i<$nb_stagiaires;$i+=2){
echo "$i => $stagiaires[$i] | ";
}</pre>
<?php
for($i=0;$i<$nb_stagiaires;$i+=2){
echo "$i => $stagiaires[$i] | ";
}
?>
<h2>Sur un tableau associatif</h2>
<p>En cas de tableau associatif, on utilise quasi exclusivement le foreach</p>
<h3>Que la valeur avec "as $value"</h3>
<pre>foreach ($users as $valeur){
echo "$valeur | ";
}</pre>
<?php
$users= [
"premier"=>"Lulu",
"deuxieme"=>"c'est la deuxième valeur",
"trois"=>"et on y va",
"quatre"=>4,
];
foreach ($users as $valeur){
echo "$valeur | ";
}
?>
<h3>La clef et la valeur avec "as $key => $value"</h3>
<pre>foreach ($users as $clef => $valeur){
echo "$clef => $valeur | ";
}</pre>
<?php
foreach ($users as $clef => $valeur){
echo "$clef => $valeur | ";
}
?>
</body>
</html>