Page 1 sur 1

Boucle for dans chaîne echo

Posté : 03 nov. 2016, 23:33
par Chris32
Bonjour à tous et toutes. J'ai un problème de syntaxe (ou un problème de php tout court).
J'ai 1 table avec A B C et 1 table avec 1 2. Mon souhait est d'obtenir cette combinaison :
A1
A2
B1
B2
C1
C2
D1
D2
J'ai tenté de faire 2 boucles for l'une dans l'autre, elle fonctionne bien (voici le code utilisé) :
for($i=1; $i<=1; $i++) {
echo $data['Noms1'],
'for($j=1; $j<=1; $j++) {',
$data['Noms2'],
'}',
'<br/>';
}
mais il y a un problème à l'affichage :
Afor($j=1; $j<=1; $j++) {1}
Afor($j=1; $j<=1; $j++) {2}
B($j=1; $j<=1; $j++) {1}
... etc.

Puis-je obtenir un éclairage sur la syntaxe exacte sur ce code et sa faisabilité.
Merci d'avance.

Re: Boucle for dans chaîne echo

Posté : 04 nov. 2016, 00:07
par vincent.c
Bonsoir,

Le problème ici est surtout au niveau de l'algorithme.

Tu as 2 tableaux: [A, B, C] et [1, 2] (à toi d'adapter comment tu obtient les valeurs). Tu souhaites avoir un résultat du type A1 A2 B1 B2 ...

Tu as besoin de deux notions, savoir parcourir un tableau et savoir afficher des caractères.

Comment parcourir un tableau ? Plusieurs choix possibles, voici les bases: while, for, foreach. Pour parcourir un tableau, il est souvent plus simple d'utiliser la boucle foreach. Il est facilement possible de passer d'une boucle à l'autre.
Pour afficher notre contenu, on va utiliser echo.
<?php
$lettres = ['A', 'B', 'C'];

foreach($lettres as $lettre) {
    echo $lettre;
}
Le résultat de ce script sera alors: ABC

Intégrons alors le deuxième tableau. Que veux tu faire ? Pour chaque lettre, afficher la lettre avec chaque chiffre. On obtient alors en code deux boucles imbriquées.
<?php
$lettres = ['A', 'B', 'C'];
$chiffres = [1, 2];

foreach($lettres as $lettre) {
    foreach($chiffres as $chiffre) {
        echo "$lettre$chiffre<br/>";
    }
}
On obtient le résultat attendu !

Bonne soirée.

Re: Boucle for dans chaîne echo

Posté : 04 nov. 2016, 00:09
par or 1
$data1 = array('A', 'B');
$data2 = array('1', '2', '3');
for($i=0; $i<sizeof($data1); $i++) {  
  for($j=0; $j<sizeof($data2); $j++) {
    echo $data1[$1].$data2[$j].'<br/>';    
  }  
}

Re: Boucle for dans chaîne echo

Posté : 04 nov. 2016, 00:14
par Chris32
Merci pour ta réponse, c'est vrai que c'est très clair ainsi (je débute donc je tâtonne et balbutie).