Wiliwilliam | [Résolvu] exercice PHP - Trier et afficher des valeurs |
0 #1 |
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38225
Karma: 18956 |
Encore moi pour une question sur le PHP pour changer :roll:
Alors je vous explique: j'ai disons ... 5 personnes avec 5 valeurs attribuées.
Actuellement ce que je sais faire comme sortie c'est ça:
Or, le problème est que l'affichage ne classe pas les personnes en fonction des valeurs. j'aimerais savoir si uniquement en php sans base de donnée, à partir des $personnes et $valeur on peut réussir à classer automatiquement les gens avec leur valeur dans l'affichage echo. pour qu'en sortie texte on est: Martin ayant comme valeur 50 Françoise ayant comme valeur 40 Didier ayant comme valeur 30 Jean-phil ayant comme valeur 20 Gertrude ayant comme valeur 10 Voilà, j'espère que ma demande est clair! ( @Adr1enb @-Flo- qui sont généralement plutôt efficace pour m'aider, attardé comme je suis :-D) NB: j'ai cherché sur internet, j'ai trouvé des choses parlant de array() et de key, mais j'ai rien compris et j'ai pas trouvé comment Trier et exploiter le tableau.
Contribution le : 08/05/2015 00:29
Edité par Wiliwilliam_ sur 14/5/2015 11:19:27
|
|
Signaler |
Wiliwilliam | 0 #2 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38225
Karma: 18956 |
j'ai testé avec ça:
ça me sort Martin = 50 Françoise = 40 Didier = 30 Jean-phil = 20 Gertrude = 10 Bon mais du coup moi j'aimerais faire des phrases personnalisée pour le premier et le dernier. genre comme ça: Martin = 50 Mais quel champion! Françoise = 40 Didier = 30 Jean-phil = 20 Et notre looser est Gertrude = 10 Comment j'interviens?
Contribution le : 08/05/2015 01:15
Edité par Wiliwilliam_ sur 8/5/2015 11:33:44
Edité par Wiliwilliam_ sur 8/5/2015 11:46:07 |
|
Signaler |
Invité | 0 #3 |
|
---|---|---|
FantômeInvité
|
Je n'ai plus aucune idée des noms des fonctions, par contre je verrais bien deux exceptions de cette manière dans ton foreach :
if premier élément de ton array (je crois que ça donnerait $fruitArrayObject[0] quelque chose dans le genre, à vérifier) -> tu mets ton echo de valeurs suivi de ton "mais quel champion" else if dernier élément de ton array (y'a une fonction pour donner la taille d'un array, tu fais juste un comparatif pour savoir si l'élément sur lequel tu es correspond à cette taille maximale) -> tu mets donc ton echo de valeurs précédé de ton "looser" else -> ton affichage de valeurs classique J'crois que c'est légèrement porkass, mais mes quelques souvenirs de développement donneront que ça
Contribution le : 08/05/2015 08:18
|
|
Signaler |
Wiliwilliam | 0 #4 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38225
Karma: 18956 |
Un peu ouai
J'ai testé mais j'ai du faire des erreurs de. Syntaxe ça marche pas
Contribution le : 08/05/2015 08:38
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 0 #5 |
|
---|---|---|
FantômeInvité
|
Ou sinon tu tapes une itération, quelque chose de bien sale
$i = 0; foreach ($fruitArrayObject as $key => $val) { if ($i = 0) echo "$key = $val mais quel champion</br>"; else if ($i = count($fruitArrayObject)) echo "et notre looser est $key = $val </br>"; else echo "$key = $val </br>"; $i++; } Si ce truc moche fonctionne pas, c'est que j'ai définitivement perdu tout skill de développement
Contribution le : 08/05/2015 09:00
|
|
Signaler |
Wiliwilliam | 0 #6 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38225
Karma: 18956 |
bon en fait c'est de la merde le Ksort() et compagnie. y en a aucun qui veut faire le classement décroissant, ni sort() arsort() ni krsort() ne fonctionne, ça me renvoie rien....
Contribution le : 08/05/2015 12:05
|
|
Signaler |
Invité | 0 #7 |
|
---|---|---|
FantômeInvité
|
Citation :
Juste une question, pourquoi tu déclares un nouvel array avant le krsort() ? Fais juste appel à krsort($tri) pour trier en décroissant ton tableau sans le stocker dans un autre. Après tu veux trier d'abord la valeur numérique et pas le nom. Pour faire plus simple mets en key ton chiffre et en value le prénom et inverses les dans ton echo de sortie.
Contribution le : 08/05/2015 12:33
|
|
Signaler |
AshySlashy | 0 #8 |
|
---|---|---|
J'aime glander ici
Inscrit: 05/04/2007 11:48
Post(s): 8201
Karma: 1358 |
ksort marche, mais ça va te trier par ordre alphabétique des prénoms
Faut utiliser asort à la place pour trier selon les valeurs, et arsort pour trier de façon décroissante. Et pas besoin de transformer en objet. Essaie ça à la place:
Contribution le : 14/05/2015 10:24
|
|
Signaler |
Wiliwilliam | 0 #9 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38225
Karma: 18956 |
C'est bon en fait j'avais déjà réglé le soucis et l'ordre décroissant n'était plus nécessaire
Merci d'avoir pris le temps de répondre
Contribution le : 14/05/2015 11:19
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Le sujet est verrouillé