PHP: classement tableau multidimensionel
Résolu
123biwei
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
fgyhj -
fgyhj -
Bonjour,
Je deviens fou pour un truc qui est certainment tout bete.
J'ai un tableau mutlidirectionel pour les joueur de mon equipe de foot.
Le tableau est cree de la maniere suivante
Maintenant je voudrais le classer par buteur (facile) mais aussi, car il y en a qui ont le meme nbre de buts, par selection puis par carton, etc...
Comment faire?
J'ai essaye avec array_multisort() je n'y arrive pas
Ou avce des fonctions trouve sur le net comme arrayColumnSort()
RIEN A FAIRE..
Je brule un cyber cierge a celui qui me donne la reponse. (a defaut de me bruler le cerveau!)
Merci,
Pierre.
Je deviens fou pour un truc qui est certainment tout bete.
J'ai un tableau mutlidirectionel pour les joueur de mon equipe de foot.
Le tableau est cree de la maniere suivante
for ($i=0 ; $i>$nombre de joueur ; $i++) { $class_but[$i]['buts'] = $totalbuts; $class_but[$i]['id'] = $id; $class_but[$i]['selection'] = $nbr_selection; // ....etc ... }
Maintenant je voudrais le classer par buteur (facile) mais aussi, car il y en a qui ont le meme nbre de buts, par selection puis par carton, etc...
Comment faire?
J'ai essaye avec array_multisort() je n'y arrive pas
Ou avce des fonctions trouve sur le net comme arrayColumnSort()
RIEN A FAIRE..
Je brule un cyber cierge a celui qui me donne la reponse. (a defaut de me bruler le cerveau!)
Merci,
Pierre.
A voir également:
- PHP: classement tableau multidimensionel
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
10 réponses
hello nicolas,
Ca fait un bail que je ne suis pas revenu sur mes lignes de code je vais essayer de t'expliquer de memoire.
En fait c'est simple, ton tableau peut etre forme de deux maniere differente, avec un exemple ici:
a/
pierre, france, paris, homme
Michel, belgique, bruxelles, homme
Gertrude, Suisse, Geneve, femme
b/
Pierre, Michel, Gertrude
France, Belgique, Suisse
Paris, Bruxelles, Geneve,
Homme, Homme,Femme
Array multisort ne fonctionne que sur le tableau de type a.
Si tu veux utiliser un array multisort avec un tableau de ligne b, tu dois passer par les lignes de code citées ci-dessus.
Je ne prefere pas t'appeler d'une parceque je vis tres loin de l'Europe, 2 parce ce qui est bien avec ce forum c'est qu'on reste anonyme.
A+,
Pierre.
Ca fait un bail que je ne suis pas revenu sur mes lignes de code je vais essayer de t'expliquer de memoire.
En fait c'est simple, ton tableau peut etre forme de deux maniere differente, avec un exemple ici:
a/
pierre, france, paris, homme
Michel, belgique, bruxelles, homme
Gertrude, Suisse, Geneve, femme
b/
Pierre, Michel, Gertrude
France, Belgique, Suisse
Paris, Bruxelles, Geneve,
Homme, Homme,Femme
Array multisort ne fonctionne que sur le tableau de type a.
Si tu veux utiliser un array multisort avec un tableau de ligne b, tu dois passer par les lignes de code citées ci-dessus.
Je ne prefere pas t'appeler d'une parceque je vis tres loin de l'Europe, 2 parce ce qui est bien avec ce forum c'est qu'on reste anonyme.
A+,
Pierre.
Bonjour,
Tes données viennent-elles d'une base de données ? Si oui, je te conseille de faire le tri directement dans ta requête, ce sera plus simple !
Dans tous les cas, la condition de continuité de ta boucle FOR m'intrigue : $i>$nombre de joueur ?
Déjà, un nom de variable avec espaces ? Ensuite, $i> ? pas plutôt $i< ??
Xavier
Tes données viennent-elles d'une base de données ? Si oui, je te conseille de faire le tri directement dans ta requête, ce sera plus simple !
Dans tous les cas, la condition de continuité de ta boucle FOR m'intrigue : $i>$nombre de joueur ?
Déjà, un nom de variable avec espaces ? Ensuite, $i> ? pas plutôt $i< ??
Xavier
oui tu as raison Xavier. En retapant de memoire le code j'ai fait cette erreur.
Mais pour le classement ca m'arrange grandement de le mettre sous tableau.
C'est a ce point complex? Pour moi le classement multiple d'un tableau ca doit etre utilisé assez souvent, non???
Merci Xavier
Mais pour le classement ca m'arrange grandement de le mettre sous tableau.
C'est a ce point complex? Pour moi le classement multiple d'un tableau ca doit etre utilisé assez souvent, non???
Merci Xavier
Salut,
meme en s'inspirant de cet exemple ?
meme en s'inspirant de cet exemple ?
Classer un tableau multi-dimensionnel <?php $ar = array( array("10", 11, 100, 100, "a"), array( 1, 2, "2", 3, 1) ); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); var_dump($ar); ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bein ouais je l'avais vu sur la doc de php. Mais j'ai essayé pleins de fois et ca ne marche pas!
Comment l'adapter a mon exemple?
ca ne marche pas!!
Merci pour ton aide Alain. Si tu as une idée...
Comment l'adapter a mon exemple?
array_multisort($ar['buts'], SORT_ASC, SORT_NUMERIC, $ar['selection'], SORT_NUMERIC, SORT_DESC);
ca ne marche pas!!
Merci pour ton aide Alain. Si tu as une idée...
Bonjour,
Est-ce que tu pourrais nous donner le résultat d'un var_dump avant et après l'utilisation de array_multisort ? Et nous donner la ligne correspondante au array_multisort, aussi, si ce n'est pas exactement là même que juste au-dessus...
Xavier
Est-ce que tu pourrais nous donner le résultat d'un var_dump avant et après l'utilisation de array_multisort ? Et nous donner la ligne correspondante au array_multisort, aussi, si ce n'est pas exactement là même que juste au-dessus...
Xavier
Xavier,
D'abord j'ai un peu ameliorer mon code:
Le resulat var_dump est:
EN FAIT J'AI PRESQUE LA SOLUTION:
Dans cet exemple, nous allons trier la colonne volume par ordre d?oissant, et la colonne edition par ordre croissant.
Nous avons un tableau de lignes, mais array_multisort() n?ssite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.
Mais la j'ai essaye de l'adapter a mon code:
Et j'obtiens l'erreur du style:
Warning: Cannot use a scalar value as an array in D:\www\les_bleus\Copy of index.php
-->Je sent que la notion de tableau va mettre du temps a s'installer dans mon esprit ou les neuronnes sont deja bien attaqués :-(
Merci pour ton aide
D'abord j'ai un peu ameliorer mon code:
do { $class_but[]= array('buts'=> $totalRows_buts, id'=>$row_joueurs1['user_id'], 'selections'=> $totalRows_selections , 'posts' =>$totalRows_posts, 'buts_match' => $totalRows_selections_match ); } while ($row_selections_match = mysql_fetch_assoc($selections_match));
Le resulat var_dump est:
array(3) { [0]=> array(5) { ["buts"]=> int(2) ["id"]=> string(1) "2" ["selections"]=> int(1) ["posts"]=> int(4) ["buts_match"]=> int(1) } [1]=> array(5) { ["buts"]=> int(1) ["id"]=> string(1) "4" ["selections"]=> int(4) ["posts"]=> int(367) ["buts_match"]=> int(2) } [2]=> array(5) { ["buts"]=> int(3) ["id"]=> string(1) "5" ["selections"]=> int(1) ["posts"]=> int(0) ["buts_match"]=> int(1) } }
EN FAIT J'AI PRESQUE LA SOLUTION:
<?php $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); ?>
Dans cet exemple, nous allons trier la colonne volume par ordre d?oissant, et la colonne edition par ordre croissant.
Nous avons un tableau de lignes, mais array_multisort() n?ssite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.
<?php // Obtient une liste de colonnes foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // Tri les donn? par volume d?oissant, edition croissant // Ajoute $data en tant que premier param?e, pour trier par la cl?ommune array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?>
Mais la j'ai essaye de l'adapter a mon code:
/*foreach ($class_but as $key => $row) { $buts[$key] = $row['buts']; $selections[$key] = $row['selections']; } // Tri les donn? par volume d?oissant, edition croissant // Ajoute $data en tant que premier param?e, pour trier par la cl?ommune array_multisort($buts, SORT_DESC, $selections, SORT_DESC, $class_but);
Et j'obtiens l'erreur du style:
Warning: Cannot use a scalar value as an array in D:\www\les_bleus\Copy of index.php
-->Je sent que la notion de tableau va mettre du temps a s'installer dans mon esprit ou les neuronnes sont deja bien attaqués :-(
Merci pour ton aide
HOURRAAAAAAAAAA
Ca marche ENFIN!!!!!!!
j'avais deja utilise une des variables!!! Ca m'apprendra a bien noter mes variables!!
Donc la reponse a ma solution c'etait que array_multisort() marche pour un tableau fair sous forme de colonne!
Ca marche ENFIN!!!!!!!
j'avais deja utilise une des variables!!! Ca m'apprendra a bien noter mes variables!!
Donc la reponse a ma solution c'etait que array_multisort() marche pour un tableau fair sous forme de colonne!
HOURRAAAAAAAAAA
Ca marche ENFIN!!!!!!!
j'avais deja utilise une des variables!!! Ca m'apprendra a bien noter mes variables!!
Donc la reponse a ma solution c'etait que array_multisort() marche pour un tableau faiz sous forme de colonne!
Ca marche ENFIN!!!!!!!
j'avais deja utilise une des variables!!! Ca m'apprendra a bien noter mes variables!!
Donc la reponse a ma solution c'etait que array_multisort() marche pour un tableau faiz sous forme de colonne!
Bonjour,
Je viens de lire ton topic sur la fonction array_multisort() ... et la je me dit que si tu as compris, moi c encore pas très clair pour moi comme fonction PHP.
je cherche a trier un tableau multi-dimension mais sa ne marche pas et je ne comprend pas du tout les explications qui se trouvent sur les manuels d'utilisation.
tu peux me joindre au numéro qui se trouve ici en haut à gauche (je te rappel bien sur):
https://www.e-marchespublics.com/
je suis Nicolas.
sinon si quelqu'un connait un bon manuel disponible sur internet pour comprendre sa serait cool.
merci d'avance.
Je viens de lire ton topic sur la fonction array_multisort() ... et la je me dit que si tu as compris, moi c encore pas très clair pour moi comme fonction PHP.
je cherche a trier un tableau multi-dimension mais sa ne marche pas et je ne comprend pas du tout les explications qui se trouvent sur les manuels d'utilisation.
tu peux me joindre au numéro qui se trouve ici en haut à gauche (je te rappel bien sur):
https://www.e-marchespublics.com/
je suis Nicolas.
sinon si quelqu'un connait un bon manuel disponible sur internet pour comprendre sa serait cool.
merci d'avance.