Problème de tableau array() en PHP
Résolu
SOUMIE
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
SOUMIE Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
SOUMIE Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je ne suis pas très à l'aise avec PHP et tout particulièrement avec les tableaux array().
Sur le code ci-dessous, j'aimerais ressortir les données selon un classement décroissant basé sur la variable "$compatilité" qui est un chiffre compris entre 0 et 100.
En gros j'aimerais pouvoir afficher sur une ligne la personne (nom + age + eval) qui a l'eval la plus élevée. Puis sur une autre ligne plus bas dans mon document la seconde puis encore plus loin la troisième. Je ne veux donc pas d'un simple tableau.
Je vous en remercie d'avance.
Je ne suis pas très à l'aise avec PHP et tout particulièrement avec les tableaux array().
Sur le code ci-dessous, j'aimerais ressortir les données selon un classement décroissant basé sur la variable "$compatilité" qui est un chiffre compris entre 0 et 100.
En gros j'aimerais pouvoir afficher sur une ligne la personne (nom + age + eval) qui a l'eval la plus élevée. Puis sur une autre ligne plus bas dans mon document la seconde puis encore plus loin la troisième. Je ne veux donc pas d'un simple tableau.
Je vous en remercie d'avance.
$pax = array( "1" => array( "Nom" => $postulant_1, "Age" => $age_1, "eval" => $compatibilite_1, ), "2" => array( "Nom" => $postulant_2, "Age" => $age_2, "eval" => $compatibilite_2, ), "3" => array( "Nom" => $postulant_3, "Age" => $age_3, "eval" => $compatibilite_3, ) );
A voir également:
- Php afficher array
- Afficher appdata - Guide
- Easy php - Télécharger - Divers Web & Internet
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher mot de passe wifi android - Guide
4 réponses
Bonjour,
1 - j'ai déplacé ta question dans le bon forum .... PHP
2 - j'ai édité ton message pour y corriger les balises de code ( en y mettant le langage concerné) afin d'avoir la coloration syntaxique et la numérotation des lignes3
3 -
Donc tu veux pouvoir trier ton array.
En gros
ensuite, pour l'affichage .. une simple boucle sur ton array ... et un peu de html et le tour est joué.
Je te laisse revenir vers nous lorsque tu auras déjà commencé à écrire le code ...si tu rencontres des soucis...
1 - j'ai déplacé ta question dans le bon forum .... PHP
2 - j'ai édité ton message pour y corriger les balises de code ( en y mettant le langage concerné) afin d'avoir la coloration syntaxique et la numérotation des lignes3
3 -
En gros j'aimerais pouvoir afficher sur une ligne la personne (nom + age + eval) qui a l'eval la plus élevée. Puis sur une autre ligne plus bas dans mon document la seconde puis encore plus loin la troisième
Donc tu veux pouvoir trier ton array.
En gros
$columns = array_column($pax, 'eval'); array_multisort($columns, SORT_DESC, $pax);
ensuite, pour l'affichage .. une simple boucle sur ton array ... et un peu de html et le tour est joué.
Je te laisse revenir vers nous lorsque tu auras déjà commencé à écrire le code ...si tu rencontres des soucis...
Bonjour et merci mille fois pour ton aide. En fait, en fouillant sur le web j'avais effectivement trouver "array_column" mais je ne trouve pas la manière de m'en servir pour répondre à mon besoin. En fait, j'ai testé comme ceci mais rien ne fonctionne
Et après pour les afficher sur ma page, j'ai testé :
$columns = array_column($pax, 'eval'); $result = array_multisort($columns, SORT_DESC, $pax);
Et après pour les afficher sur ma page, j'ai testé :
echo $columns[0]; //ça m'affiche effectivement le bon éval; Mais je ne sais pas comment faire pour récupérer le nom et l'age associé // ou alors echo $result[0]; // ou alors echo $result[0]['Nom']; // ou alors echo $columns[0]['Nom'];
Si tu compares ton code avec le mien .. tu verras que je n'ai pas mis de variable $result .......
Cette fonction trie le tableau...
Et .. comme indiqué dans la documentation.array-multisort Documentation.. elle retourne juste un booleen...
Toi.. il faut que tu continues à utiliser $pax pour la suite du code...
Cette fonction trie le tableau...
Et .. comme indiqué dans la documentation.array-multisort Documentation.. elle retourne juste un booleen...
Valeurs de retour ¶
Cette fonction retourne true en cas de succès ou false si une erreur survient.
Toi.. il faut que tu continues à utiliser $pax pour la suite du code...
Ah ok !!! Super, merci beaucoup. Cela faisait deux jours que j'avais trouvé array_multisort() et j'étais persuadé qu'il fallait créer une nouvelle variable mais non... C'est bon désormais. Vraiment un grand merci !
Encore un grand merci !
$pax[1]['Nom'];// ça fonctionne parfaitement et dans l'ordre croissant de eval. C'est génial
Encore un grand merci !