Explication sur clé/valeur de $listeLancesDe
Félicitation pour ce site. J'apprends php à travers votre site. Et chaque rubrique me donne nvie d'aller plus loin. Sur le sujet du cookie, j'ai manqué un chapitre sur la ligne : foreach($listeLancesDe as $numeroLance => $valeurLance)
Je sais que foreach () permet de parcourir le tableau $listeLancesDe qui a été désérialisé puis sérialisé. mais d'où viennent la clé $numerolance et sa valeur $valeurlance ?
Pourquoi $numerolance + 1
Tarek.
Réponses apportées à cette discussion
Salut,
la boucle foreach() est effectivement un peu perturbante lorsqu'on ne comprend pas ce qui correspond à quoi.
Premier point à comprendre : il est inutile de savoir combien de lignes comporte le tableau à parcourir contrairement à ce même parcours en utilisant une boucle for().
Ensuite, on utilise une première variable connue et deux variables dynamiques. Lorsque tu fais foreach($listeLancesDe as $numeroLance => $valeurLance), on connait déjà la variable $listeLancesDe qui est un tableau : les deux autres vont dynamiquement prendre les valeurs respectives de l'index de ligne et la valeur de ligne à chaque tour.
Partons si tu veux bien de valeurs arbitraires pour illustrer l'explication :
$listeLancesDe = array( 'tour1' => 'valeur 1', 'tour2' => 'valeur 2', 'tour3' => 'valeur 3', 'tour4' => 'valeur 4', 'tour5' => 'valeur 5');
On a ici un tableau tout bête avec pour chaque item de la liste un index (tour1, tour2 etc..) et des valeurs qui y correspondent.
Lorsque je fais ceci :
foreach($listeLancesDe as $numeroLance => $valeurLance){ echo('<p>'. $numeroLance .' : '. $valeurLance .'</p>'."\n");}
$numeroLance prend dynamiquement la valeur de l'index et $valeurLance en prend la valeur, et ce pour chaque ligne du tableau.
Supposons maintenant que les valeurs soient également des tableaux :
$listeLancesDe = array( 'tour1' => array( 'couleur' => 'pique', 'carte' => 'As' ), 'tour2' => array( 'couleur' => 'Coeur', 'carte' => 'Dix' ), 'tour3' => array( 'couleur' => 'Trefle', 'carte' => 'Valet' ), 'tour4' => array( 'couleur' => 'Carreau', 'carte' => 'As' ), 'tour5' => array( 'couleur' => 'Coeur', 'carte' => 'Dame' ));
Là, je ne peux pas utiliser le même code que dans l'exemple précédent parce que en lieu et place de $valeurLance, ça m'afficherait « Array » : $valeurLance prend la valeur... et le type de la valeur correspondant, donc maintenant un tableau qui peu être à son tour parcouru au besoin dans une boucle imbriquée de la même manière.
Est-ce que ça t'éclaire un peu mieux ?
Bonjour Cyrano. Oui je sais, c'est Dimanche, mais il fait 9°C dehors. Alors PHP est bienvenu en cette frâiche matinée. Merci pour ta réponse dont je ressentais intuitement la réponse après de longues heures de réflexion. Cerise sur le gateau, je découvre l'exemple d'un tableau dans un tableau. J'ai beaucoup à apprendre :-)
Pas de soucis.
Si ça peut t'aider, j'avais publié un tuto il y a pas mal de temps sur les bases à propos des tableaux en PHP
;)
et hop sous l'imprimante pour lecture dans le RER. pas très écolo mais gain de temps appréciable !