par
Ryle » 21 mai 2009, 12:00
each() retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau.
Après chaque appel à each(), le pointeur de tableau est déplacé au prochain élément, ou sur le dernier élément, lorsqu'on arrive à la fin. Vous devez utiliser reset() si vous voulez traverser le tableau à nouveau avec each().
En gros, ton premier while va parcourir tout le tableau (même s'il n'affiche que les 32 premiers éléments) et placer le pointeur à la fin de celui-ci. Du coup, lors de l'appel au 2nd while (et au 2nd each), il n'y a pas d'élément à lire, donc pas de résultat à afficher.
Tu peux utiliser reset() avant ton while pour remettre le pointeur au début du tableau, ou remplacer ton "while(list($key, $val) = each($_SESSION['panier']))" par un "foreach ($_SESSION['panier'] as $key => $val)" qui ne déplace pas le pointeur

[quote="php.net"]each() retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau.
Après chaque appel à each(), le pointeur de tableau est déplacé au prochain élément, ou sur le dernier élément, lorsqu'on arrive à la fin. Vous devez utiliser reset() si vous voulez traverser le tableau à nouveau avec each(). [/quote]
En gros, ton premier while va parcourir tout le tableau (même s'il n'affiche que les 32 premiers éléments) et placer le pointeur à la fin de celui-ci. Du coup, lors de l'appel au 2nd while (et au 2nd each), il n'y a pas d'élément à lire, donc pas de résultat à afficher.
Tu peux utiliser reset() avant ton while pour remettre le pointeur au début du tableau, ou remplacer ton "while(list($key, $val) = each($_SESSION['panier']))" par un "foreach ($_SESSION['panier'] as $key => $val)" qui ne déplace pas le pointeur :)