foreach et for

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : foreach et for

Re: foreach et for

par rimie » 01 juil. 2012, 01:49

j'ai fais une jointure de table, donc j'ai garde une seule boucle foreach

Re: foreach et for

par sirakawa » 29 juin 2012, 12:59

La différence n'est pas simplement une question d'optimisation: une incrémentation en trop? Mais il y a des cas où on peut incrémenter juste après le début de la boucle, et d'autres où il faut le faire plus tard; en particulier dans les while

Re: foreach et for

par Xartrick » 29 juin 2012, 10:00

$i = 0;

foreach ($resultmem as $mV) {
    $i++;
    
    echo($i . ':' . $mV['texte']);
}
Ce code devrait alors convenir.
initialiser à 0 et incrémenter en début de boucle, ou à 1 et incrémenter en fin de boucle ont ici le même effet.
Ceci fonctionne parfaitement :
<?PHP
$resultmem = array ();
for ($i = 1; $i <6;$i ++)
{
	$resultmem[] = "texte".$i;
}
$numero = 1;
foreach ($resultmem as $mV)
{
echo("<br />".$numero." : ".$mV);
$numero++;
}
?>
Je n'ai jamais dit le contraire.

Mon code à une (simple optimisation). En effet, lors du dernier tours de ta boucle, ta variable sera incrémenté... pour rien.

Re: foreach et for

par sirakawa » 29 juin 2012, 09:36

$i = 0;

foreach ($resultmem as $mV) {
    $i++;
    
    echo($i . ':' . $mV['texte']);
}
Ce code devrait alors convenir.
initialiser à 0 et incrémenter en début de boucle, ou à 1 et incrémenter en fin de boucle ont ici le même effet.
Ceci fonctionne parfaitement :
<?PHP
$resultmem = array ();
for ($i = 1; $i <6;$i ++)
{
	$resultmem[] = "texte".$i;
}
$numero = 1;
foreach ($resultmem as $mV)
{
echo("<br />".$numero." : ".$mV);
$numero++;
}
?>

Re: foreach et for

par Mazarini » 29 juin 2012, 09:05

Je dois être obtus, mais je ne vois toujours pas comment sont organisées tes données. Un var_dump ou le code qui alimente les tableaux ?

Re: foreach et for

par rimie » 29 juin 2012, 07:25

affiche 1 pour chaque commentaire, aucune incrementation

bon c'est pas grave, des foreach la dans peuvent empecher l'incrementation, je vais faire des requete avec JOIN comme ca j'aurais une seule foreach, ce que doit forcer l'incrementation avec vos precedents code, merci a vous

Re: foreach et for

par Xartrick » 29 juin 2012, 05:18

$i = 0;

foreach ($resultmem as $mV) {
    $i++;
    
    echo($i . ':' . $mV['texte']);
}
Ce code devrait alors convenir.

Re: foreach et for

par rimie » 29 juin 2012, 03:55

sirakawa: ca bouge pas du 1, le meme resultat:

Code : Tout sélectionner

1er commentaire 1 2eme commentaire 1 3eme commentaire 1 4eme commentaire 1 5eme commentaire 1

Re: foreach et for

par sirakawa » 28 juin 2012, 18:40

si je ne me trompe pas:
$numero = 1;
foreach ($resultmem as $mK => $mV)
{
echo($numero." : ".$mK . ':' . $mV['texte']);
$numero++;
}

Re: foreach et for

par rimie » 28 juin 2012, 16:56

il comprend: le commentaire, la date complete (y compris l'heure), l'avatar

Re: foreach et for

par sirakawa » 28 juin 2012, 16:39

C'est juste que sans connaitre le contenu de cette variable, je ne pouvais pas t'aider.
même question : resultmem comprend le texte et quoi ?
J'ai l'impression qu'on va se retrouver avec array_keys()...

Re: foreach et for

par Mazarini » 28 juin 2012, 15:35

C'est juste que sans connaitre le contenu de cette variable, je ne pouvais pas t'aider.

Re: foreach et for

par rimie » 28 juin 2012, 14:52

Il faut savoir ce que contient $resultmem pour pouvoir afficher son contenu.
je veux juste afficher l'incrementation, pour le foreach() ca s'affiche bien

Re: foreach et for

par Mazarini » 28 juin 2012, 14:46

Il faut savoir ce que contient $resultmem pour pouvoir afficher son contenu.

Re: foreach et for

par rimie » 28 juin 2012, 14:21

5 enregistrements = 5 commentaires et chaque commentaire aura un num incremente 1, 2, 3, 4, 5

Code : Tout sélectionner

1 commentaire 1 2 commentaire 2 3 commentaire 3 4 commentaire 4 5 commentaire 5