[RESOLU]Trier un tableau a deux dimensions

Trier un tableau a deux dimensions [RESOLU] - PHP - Programmation

Marsh Posté le 30-12-2006 à 17:46:27    

Bonjour,
je dispose d'un tableau à deux dimensions du type:

Code :
  1. //                               NOM:     |   POINTS:
  2. Array (
  3.            [0] => Array ( [0] => pierre[1] => 439677 )
  4.            [1] => Array ( [0] => jean [1] => 228257 )
  5.            [2] => Array ( [0] => jacques [1] => 320168 )
  6.            [3] => Array ( [0] => paul [1] => 393616 )
  7.            [4] => Array ( [0] => bruno [1] => 506652 )
  8.            [5] => Array ( [0] => thomas[1] => 256524 )
  9.            [6] => Array ( [0] => francois[1] => 1274581 )
  10.         )


Je souhaiterais donc trier mon tableau en fonction du nombres de points qui correspond à la deuxiéme case du second tableau.
Merci d'avance pour vos pistes ou idées.
Hardrog

Message cité 1 fois
Message édité par hardrog le 30-12-2006 à 20:53:04
Reply

Marsh Posté le 30-12-2006 à 17:46:27   

Reply

Marsh Posté le 30-12-2006 à 18:40:21    

hardrog a écrit :

Bonjour,
je dispose d'un tableau à deux dimensions du type:

Code :
  1. //                               NOM:     |   POINTS:
  2. Array (
  3.            [0] => Array ( [0] => pierre[1] => 439677 )
  4.            [1] => Array ( [0] => jean [1] => 228257 )
  5.            [2] => Array ( [0] => jacques [1] => 320168 )
  6.            [3] => Array ( [0] => paul [1] => 393616 )
  7.            [4] => Array ( [0] => bruno [1] => 506652 )
  8.            [5] => Array ( [0] => thomas[1] => 256524 )
  9.            [6] => Array ( [0] => francois[1] => 1274581 )
  10.         )


Je souhaiterais donc trier mon tableau en fonction du nombres de points qui correspond à la deuxiéme case du second tableau.
Merci d'avance pour vos pistes ou idées.
Hardrog


 
Ben pour un tableau d'aussi petite taille, l'algo du tri à bulle semble le plus simple à implémenter...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-12-2006 à 18:41:13    

J'avance, maintenant j'arrive a faire un pseudo tri:
 

Code :
  1. print_r($tableau);


affiche:

Code :
  1. //                               NOM:     |   POINTS:
  2.  
  3.       Array (
  4.  
  5.                 [6] => Array ( [0] => francois[1] => 1274581 )
  6.                 [4] => Array ( [0] => bruno [1] => 506652 )
  7.                 [0] => Array ( [0] => pierre[1] => 439677 )
  8.                 [3] => Array ( [0] => paul [1] => 393616 )
  9.                 [2] => Array ( [0] => jacques [1] => 320168 )
  10.                 [5] => Array ( [0] => thomas[1] => 256524 )
  11.                 [1] => Array ( [0] => jean [1] => 228257 )
  12.  
  13.              )


 
On peut voir que le tri a bien été effectué, mais le probléme qui se pose est que le tri n'affecte pas l'indice du tableau.  
 
j'aurais voulut avoir:
 

Code :
  1. //                               NOM:     |   POINTS:
  2.  
  3.       Array (
  4.  
  5.                 [0] => Array ( [0] => francois[1] => 1274581 )
  6.                 [1] => Array ( [0] => bruno [1] => 506652 )
  7.                 [2] => Array ( [0] => pierre[1] => 439677 )
  8.                 [3] => Array ( [0] => paul [1] => 393616 )
  9.                 [4] => Array ( [0] => jacques [1] => 320168 )
  10.                 [5] => Array ( [0] => thomas[1] => 256524 )
  11.                 [6] => Array ( [0] => jean [1] => 228257 )
  12.  
  13.              )


 
Auriez vous des idées?
Hardrog
 

Reply

Marsh Posté le 30-12-2006 à 19:00:25    

hardrog a écrit :

Auriez vous des idées?


Oui, tu implémentes toi-même l'algo. Avec permutation des éléments placés à la mauvaise place etc...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-12-2006 à 19:02:48    

C'est bien ce dont j'avais peur.
 Mais le tri de tableau à deux dimensions doit être une tâche assez fréquente, je pensais donc que quelqu'un l'aurait déjà fait. Je reste ouvert a toutes suggestions :cry: .
Hardrog

Reply

Marsh Posté le 30-12-2006 à 19:33:54    

Sve@r a écrit :

Oui, tu implémentes toi-même l'algo. Avec permutation des éléments placés à la mauvaise place etc...


 
Ouais, enfin, un simple usort avec une fonction de comparaison assez triviale semble plus direct et simple à mettre en place

Reply

Marsh Posté le 30-12-2006 à 20:17:12    

Merci pour la piste, je cherche dans ce sens (usort).  
Hardrog

Reply

Marsh Posté le 30-12-2006 à 20:53:47    

J'ai abandonné le usort, pour une adaptation du tri a  bulle. Sa marche nickel, merci pour vos idées.
Hardrog

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed