Trier un tableau suivant une colonne

Trier un tableau suivant une colonne - PHP - Programmation

Marsh Posté le 02-06-2005 à 19:34:15    

Salut,  
 
J'ai un tableau de cette forme:
 

$tableau[0][0]="blabla";
$tableau[0][1]="45";
$tableau[0][2]="zou";
$tableau[1][0]="groumph";
$tableau[1][1]="78";
$tableau[1][2]="glop";
$tableau[2][0]="plouf";
$tableau[2][1]="14";
$tableau[2][2]="zoumzoum";


 
et je souhaite le trier par ordre croissant suivant [x][1] pour avoir au final:


$tableau[0][0]="plouf";
$tableau[0][1]="14";
$tableau[0][2]="zoumzoum";
$tableau[1][0]="blabla";
$tableau[1][1]="45";
$tableau[1][2]="zou";
$tableau[2][0]="groumph";
$tableau[2][1]="78";
$tableau[2][2]="glop";


 
Existe t'il une fonction pour faire ca?
 
merci


Message édité par Limit le 02-06-2005 à 19:34:39
Reply

Marsh Posté le 02-06-2005 à 19:34:15   

Reply

Marsh Posté le 02-06-2005 à 20:44:34    

J'ai pas trop capté quel tri tu as fait :/


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 02-06-2005 à 21:04:16    

ce que je veux c'est que l'indice principal soit rangé suivant l'indice secondaire croissant :D

Reply

Marsh Posté le 02-06-2005 à 21:16:09    

Désolé mais dans ton exemple j'ai l'impression que les indices soient les memes ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 03-06-2005 à 11:28:11    

Non, il n'existe pas de fonction qui pourra te faire ca ...
 
algo power

Reply

Marsh Posté le 03-06-2005 à 11:37:46    

J'ai pas testé donc je ne suis pas sur que ca marche.
 
Je ne suis meme pas sur d'avoir bien compris ce que tu recherches mais si c'est bien ce que j'ai pigé, alors il doit plus te rester des masses de boulot pour faire marcher cette ébauche faite directement dans mon navigateur.
 
C'est peut etre un peu bourrin mais ca devrait marcher sans pbs ...
 

Code :
  1. // $Nb_dim = nombre maximum du 1er indice
  2. // $Nb_dim2 = nombre maximum du 1er indice du tableau résultant
  3. // $MonTab --> Résultat trié
  4. for($i = 0; $i < $Nb_dim; $i++)
  5. {
  6.   $trouve = -1;
  7.   for($j = 0; $j < $Nb_dim2 && $trouve == -1; $j++)
  8.   {
  9.     if($tableau[$i][1] < $MonTab[$j][1])
  10.       $trouve = $j;
  11.   }
  12.   if($trouve != -1)
  13.   {
  14.     for($j = $Nb_dim2 - 1; $j > $trouve; $j--)
  15.     {
  16.       $MonTab[$j+1][0] = $MonTab[$j][0];
  17.       $MonTab[$j+1][1] = $MonTab[$j][1];
  18.       $MonTab[$j+1][2] = $MonTab[$j][2];
  19.     }
  20.   }
  21.   else
  22.     $trouve = 0;
  23.   $MonTab[$trouve][0] = $tableau[$i][0];
  24.   $MonTab[$trouve][1] = $tableau[$i][1];
  25.   $MonTab[$trouve][2] = $tableau[$i][2];
  26. }


Message édité par Worldofdada le 03-06-2005 à 11:38:28
Reply

Sujets relatifs:

Leave a Replay

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