Trier un tableau ( 2 dimensions) en fonction de la ligne puis de la colonne
Posté : 11 avr. 2019, 11:12
Bonjour à tous,
Je suis nouveau sur le site et débutant en PHP, je vous remercie par avance pour votre aide.
Donc voila, j'ai programmé un tableau à deux dimensions, 6 lignes et 10 colonnes avec dans une ligne ( le nom d’élève suivi de 9 notes aléatoires ) .
Dans la première colonne j'ai mis le nom des élèves avec ce code :
$tableau[][]="Toto";
$tableau[][ ]="Julien";
$tableau[][]="Renaud";
$tableau[][]="Dimitri";
$tableau[][]="Maciej";
$tableau[][]="Martine";
Ensuite pour chaque élèves je donne 9 notes aléatoires avec ce code :
for ($i=0 ; $i <= 5; $i++ )
{
for ($z=1 ; $z <= 9; $z++ )
{
$tableau[$i][$z]= rand(0, 20);
}
}
Voila ce qui s'affiche :
toto 13 14 2 14 5 10 18 10 4
julien 6 17 20 11 15 8 14 17 10
renaud 16 3 19 20 1 18 6 7 1
dimitri 20 15 3 10 2 13 14 20 14
maciej 13 3 6 4 20 13 9 6 12
martine 11 19 10 5 13 12 5 6 4
Par la suite je trie mon tableau en utilisant ce code : array_multisort( $tableau ) et voila ce qui s'affiche ;
dimitri 19 10 9 10 10 16 8 20 3
julien 13 19 17 15 6 3 20 17 1
maciej 18 13 17 11 10 12 13 12 14
martine 4 3 4 1 0 14 0 18 7
renaud 18 9 17 13 12 20 20 12 13
toto 4 6 15 0 7 3 5 13 20
J'ai donc bien un tri en fonction de ma première colonne mais je souhaiterais également que pour chaque élève, les notes soient triés par ordre croissant, j'ai beau cherché sur le net impossible de trouver quelque chose de concret, j'ai essayé usort , sort , arsort , ksort , une continuité de foreach et un tas d'autres choses mais impossible d'obtenir le tri par colonne et ensuite par ligne.
Merci à vous et bon courage
Je suis nouveau sur le site et débutant en PHP, je vous remercie par avance pour votre aide.
Donc voila, j'ai programmé un tableau à deux dimensions, 6 lignes et 10 colonnes avec dans une ligne ( le nom d’élève suivi de 9 notes aléatoires ) .
Dans la première colonne j'ai mis le nom des élèves avec ce code :
$tableau[][]="Toto";
$tableau[][ ]="Julien";
$tableau[][]="Renaud";
$tableau[][]="Dimitri";
$tableau[][]="Maciej";
$tableau[][]="Martine";
Ensuite pour chaque élèves je donne 9 notes aléatoires avec ce code :
for ($i=0 ; $i <= 5; $i++ )
{
for ($z=1 ; $z <= 9; $z++ )
{
$tableau[$i][$z]= rand(0, 20);
}
}
Voila ce qui s'affiche :
toto 13 14 2 14 5 10 18 10 4
julien 6 17 20 11 15 8 14 17 10
renaud 16 3 19 20 1 18 6 7 1
dimitri 20 15 3 10 2 13 14 20 14
maciej 13 3 6 4 20 13 9 6 12
martine 11 19 10 5 13 12 5 6 4
Par la suite je trie mon tableau en utilisant ce code : array_multisort( $tableau ) et voila ce qui s'affiche ;
dimitri 19 10 9 10 10 16 8 20 3
julien 13 19 17 15 6 3 20 17 1
maciej 18 13 17 11 10 12 13 12 14
martine 4 3 4 1 0 14 0 18 7
renaud 18 9 17 13 12 20 20 12 13
toto 4 6 15 0 7 3 5 13 20
J'ai donc bien un tri en fonction de ma première colonne mais je souhaiterais également que pour chaque élève, les notes soient triés par ordre croissant, j'ai beau cherché sur le net impossible de trouver quelque chose de concret, j'ai essayé usort , sort , arsort , ksort , une continuité de foreach et un tas d'autres choses mais impossible d'obtenir le tri par colonne et ensuite par ligne.
Merci à vous et bon courage