fabriquer un array à partir d'une boucle while

Eléphanteau du PHP | 35 Messages

19 sept. 2009, 22:38

bonjour
de ma boucle while (qui n'est pas issu d'une requete sql) je tire à chaque passage un prénom ($prenom) et un nombre ($i)
je galère pour faire array qui donnerait
array( [christophe]=>1 [laurence]=>5 [simone]=>3 )
j'ai bien essayé d'insérer dans la boucle $tablo=array($prenom=>$i);

mais bien évidemment ça ne s'empile pas dans le tablo et ça m'affiche array( [simone]=>3 )

voilà
j'ai essayé aussi array_push mais ça va pas non plus

si une ame généreuse a une idée :roll:
merci d'avance

Mammouth du PHP | 985 Messages

19 sept. 2009, 22:46

Car ta boucle ne stocke pas les variables précédemment définies, et donc à chaque passage les variables sont remplacées ou redéfinies...
Donc suivant ton exemple, la seule solution serait de stocker les variables quelque-part, ou de les définir toutes d'un coup...
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 sept. 2009, 22:59

Le problème est surtout qu'à chaque itération de ta boucle while, tu écrases le contenu de ta variable $tablo avec un nouveau tableau ne contenant qu'un seul élément, au lieu de compléter un tableau existant :
$tablo=array(); // on déclare le tableau
while (....) {
   $tablo[$prenom] = $i; // on renseigne le tableau en indiquant que l'index $prenom a pour valeur $i
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 369 Messages

20 sept. 2009, 09:00

Salut,
bonjour
de ma boucle while (qui n'est pas issu d'une requete sql) je tire à chaque passage un prénom
($prenom) et un nombre ($i) je galère pour faire array qui donnerait
array( [christophe]=>1 [laurence]=>5 [simone]=>3 )
j'ai bien essayé d'insérer dans la boucle $tablo=array($prenom=>$i);
mais bien évidemment ça ne s'empile pas dans le tablo et ça m'affiche array( [simone]=>3 )
voilà
j'ai essayé aussi array_push mais ça va pas non plus
si une ame généreuse a une idée :roll:
merci d'avance
Comme les réponses précédentes: Ton tableau est écrasé.

Pour un tel type de contrainte, j'utilise bêtement la référence du tableau.
le path jusqu'à la clef concernée (éxistante ou pas) et le la valeur à y mettre

Ce qui s'écrit ainsi: fnct($array, "key_1/key_2", "Valeur").
Ou plus simplement: Référence_Tableau -> Key = Value

Voila, si ca a fait germé, en toi, la façon de procéder... ;)

@+ bon code ;)

EDIT: Oups, j'ai lu le message de Ryle en biais. Il est carrément plus simple pour la contrainte (faible)
qui est la tienne, préfère le.

Eléphanteau du PHP | 35 Messages

20 sept. 2009, 10:35

merci à vous tous pour vos réponses
la solution de ryle semble la plus simple ....ô combien simple d'ailleurs... :D
merci bcp
je reviendrais surement vers vous car ça va se compliquer un peu mon affaire mais bon ...je vais d'abord y réfléchir
bye