par
pèere limpinpin » 01 janv. 2009, 12:32
Bonjour,
Je voudrai après un premier
explode utiliser un premier
foreach, puis après un deuxième
explode utiliser un deuxième
foreach, puis après un troisième
explode utiliser un troisième
foreach,
Comme un exemple vaut mieux qu'un long discours, voici le code volontairement simplifié (et éloigné de mon vrai code, je veux pas vous donner la migraine en ce 1er janvier !) pour des raisons didactiques :
Code : Tout sélectionner
<?php
$formes = "rond,carré,rectange";
$couleurs = "rouge,bleu,noir";
$tailles = "petit,moyen,grand";
// Ici, le but est d'afficher "rond rouge petit", "carré bleu moyen", "rectangle noir grand"
// "Rond, rouge, petit" correspondent à la description du premier objet, "carré bleu petit" correspond à la description du deuxième objet...
// Pour mémoire
//$formes = explode(",", $formes);
//$couleurs = explode(",", $couleurs);
//$tailles = explode(",", $tailles);
$formes = explode(",", $formes);
foreach ($formes as $forme)
{
$couleurs = explode(",", $couleurs);
foreach ($couleurs as $couleur)
{
$tailles = explode(",", $tailles);
foreach ($tailles as $taille)
{
if ($forme == "rond") //oui, la condition est ridicule !!!
{?>
<p>La première forme est <?php echo $forme;?>
<p>La première couleur est <?php echo $couleur;?>
<p>La première taille est <?php echo $taille;?>
<?php
}
}
}
}
?>
Le problème est que le code renvoie 15 lignes et non 3 comme attendu... Car j'attends comme affichage :
Code : Tout sélectionner
La première forme est rond.
La première couleur est rouge.
La troisième taille est petit.
Je comprends que mon code est défaillant à cause des deux
foreach suivants, mais je ne sais pas comment y remédier.
Pourquoi 15 lignes s'affichent au demeurant (s'il y en avait 3 x 3 x 3, je comprendrai mieux !) ? A ce propos, il est intéressant de noter que dans les dernières lignes s'affiche
La taille est Array.
En revanche, les trois premières lignes sont correctes.
Merci pour votre précieuse aide !
Cordialement,
P.L. [/code]
Bonjour,
Je voudrai après un premier [i]explode[/i] utiliser un premier [i]foreach[/i], puis après un deuxième [i]explode [/i]utiliser un deuxième [i]foreach[/i], puis après un troisième [i]explode[/i] utiliser un troisième [i]foreach[/i],
Comme un exemple vaut mieux qu'un long discours, voici le code volontairement simplifié (et éloigné de mon vrai code, je veux pas vous donner la migraine en ce 1er janvier !) pour des raisons didactiques :
[code]
<?php
$formes = "rond,carré,rectange";
$couleurs = "rouge,bleu,noir";
$tailles = "petit,moyen,grand";
// Ici, le but est d'afficher "rond rouge petit", "carré bleu moyen", "rectangle noir grand"
// "Rond, rouge, petit" correspondent à la description du premier objet, "carré bleu petit" correspond à la description du deuxième objet...
// Pour mémoire
//$formes = explode(",", $formes);
//$couleurs = explode(",", $couleurs);
//$tailles = explode(",", $tailles);
$formes = explode(",", $formes);
foreach ($formes as $forme)
{
$couleurs = explode(",", $couleurs);
foreach ($couleurs as $couleur)
{
$tailles = explode(",", $tailles);
foreach ($tailles as $taille)
{
if ($forme == "rond") //oui, la condition est ridicule !!!
{?>
<p>La première forme est <?php echo $forme;?>
<p>La première couleur est <?php echo $couleur;?>
<p>La première taille est <?php echo $taille;?>
<?php
}
}
}
}
?>
[/code]
Le problème est que le code renvoie 15 lignes et non 3 comme attendu... Car j'attends comme affichage :
[code]
La première forme est rond.
La première couleur est rouge.
La troisième taille est petit.
[/code]
Je comprends que mon code est défaillant à cause des deux [i]foreach [/i] suivants, mais je ne sais pas comment y remédier.
Pourquoi 15 lignes s'affichent au demeurant (s'il y en avait 3 x 3 x 3, je comprendrai mieux !) ? A ce propos, il est intéressant de noter que dans les dernières lignes s'affiche [i]La taille est Array[/i].
En revanche, les trois premières lignes sont correctes.
Merci pour votre précieuse aide ! :)
Cordialement,
P.L. [/code]