tim4info Posté 14 Septembre 2006 Posté 14 Septembre 2006 Bonjour, Je fais à nouveau appel a webmaster-hub car je suis confronté à un problème d'utilisation de tableaux. En effet, au cours d'une requete (dans la boucle de mysql_fetch_array) je souhaite stocker deux champs dans un même tableau. exemple : $champ1 = $row["champ1"]; $champ1 = $row["champ2"]; $tableau[] = ($champ1 => $champ2); Je n'arrive pas pas à enregistrer les valeurs dans mon tableau. Pouvez vous m'indiquer de quelle manière je dois procéder ?? merci d'avance !!
captain_torche Posté 14 Septembre 2006 Posté 14 Septembre 2006 Dans le cas que tu montres, la valeur de ton tableau, contient un autre tableau, lui-même contenant deux valeurs. Il faudrait donc le rédiger comme ça : <?php$tableau[] = array($champ1, $champ2);?>
tim4info Posté 14 Septembre 2006 Auteur Posté 14 Septembre 2006 (modifié) Merci beaucoup! En fait, cette question en amène une autre, je souhaiterai à présent vouloir trier ce tableau selon la deuxième colonne (champ2). Pour cela, je pensai utilisé asort($tab). Or, ce n'est pas concluant. L'ordre change mais je n'arrive pas à comprendre la règle. Si vous pouviez également m'éclairer sur ce point. Merci !! Modifié 14 Septembre 2006 par tim4info
georges Posté 14 Septembre 2006 Posté 14 Septembre 2006 salut, un peu de lecture ne peut pas faire de mal http://fr2.php.net/manual/fr/function.array-multisort.php (voir aussi les liens dans la colonne d egauche et renvoyant vers des fonctions similaires)
captain_torche Posté 14 Septembre 2006 Posté 14 Septembre 2006 Je crois surtout que j'ai mal compris ta demande du début : tu souhaites que $champ1 soit une clé, et $champ2 la valeur ? Dans ce cas, tu peux écrire ton tableau comme ça : $tableau[$champ1] = $champ2; Par contre, pour que ça fonctionne, il faut que tous tes champs $champ1 soient différents. Mais, un peu de clarté ne fera de mal à personne : que cherches-tu à obtenir ?
tim4info Posté 14 Septembre 2006 Auteur Posté 14 Septembre 2006 Impec', merci beaucoup !! voila, en fait je voulais avoir $tableau[] = array($champ1 => $champ2); et ensuite trier en fonction du champ2 avec un array_multisort ou autre, mais sans resultat. Je n'y arrivai pas. Mais avec $tableau[$champ1] = $champ2; et avec un asort($tableau) je pense avoir ici une solution convenable. Je vais essayer ça et vous tiens au courant... Par contre, pour que ça fonctionne, il faut que tous tes champs $champ1 soient différents. mon $champ1 est un code. Il est unique. C'est parfait. Merci encore.
tim4info Posté 14 Septembre 2006 Auteur Posté 14 Septembre 2006 Voila, je tiens à vous remercier de votre aide. Tout fonctionne parfaitement... Pour info, j'avance dans la boucle avec next($tableau) et je lis la clé avec key($tableau) et la valeur avec current($tableau). @+
captain_torche Posté 14 Septembre 2006 Posté 14 Septembre 2006 Tu pourrais très bien traiter avec un foreach($tableau as $key => $value), mais bon
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant