Comment trier en php un tableau multidimensionnel ?
5 messages
• Page 1 sur 1
-

nza2k - WRInaute impliqué

- Messages: 771
- Inscription: 16 Jan 2004
Comment trier en php un tableau multidimensionnel ?
Bonjour tout le monde,
Le débutant php que je suis a une question à poser sur les tris d'un tableau à plusieurs dimensions.
Prenons un exemple :
Voici un tableau indiquant pour 4 classes scolaires le nombre d'éléves et de professeurs :
- $ecole['classe']['0']['eleve']='10';
- $ecole['classe']['1']['eleve']='20';
- $ecole['classe']['2']['eleve']='3';
- $ecole['classe']['3']['eleve']='1';
- $ecole['classe']['0']['professeur']='2';
- $ecole['classe']['1']['professeur']='3';
- $ecole['classe']['2']['professeur']='1';
- $ecole['classe']['3']['professeur']='1';
Pour créer une boucle toute simple affichant le nombre d'éleves et de professeurs par classe, il suffit d'afficher $ecole['classe'][$i]['eleve'] et $ecole['classe'][$i]['professeur'] pour $i variant de 0 à 3.
PHP m'affichera dans l'ordre 10 élèves et 2 professeurs dans la classe 0 etc...
Simple et logique.
J'aimerais maintenant que PHP m'affiche les classes en les triant par nombre d'élèves :
1 élève et 1 professeur dans la classe 0 (qui était initialement la classe 3)
3 élèves et 1 professeur dans la classe 1 (qui était initialement la classe 2)
etc...
Voyez-vous une façon simple à comprendre à rapide à exécuter (pour PHP) ?
Merci pour votre aide !
Le débutant php que je suis a une question à poser sur les tris d'un tableau à plusieurs dimensions.
Prenons un exemple :
Voici un tableau indiquant pour 4 classes scolaires le nombre d'éléves et de professeurs :
- $ecole['classe']['0']['eleve']='10';
- $ecole['classe']['1']['eleve']='20';
- $ecole['classe']['2']['eleve']='3';
- $ecole['classe']['3']['eleve']='1';
- $ecole['classe']['0']['professeur']='2';
- $ecole['classe']['1']['professeur']='3';
- $ecole['classe']['2']['professeur']='1';
- $ecole['classe']['3']['professeur']='1';
Pour créer une boucle toute simple affichant le nombre d'éleves et de professeurs par classe, il suffit d'afficher $ecole['classe'][$i]['eleve'] et $ecole['classe'][$i]['professeur'] pour $i variant de 0 à 3.
PHP m'affichera dans l'ordre 10 élèves et 2 professeurs dans la classe 0 etc...
Simple et logique.
J'aimerais maintenant que PHP m'affiche les classes en les triant par nombre d'élèves :
1 élève et 1 professeur dans la classe 0 (qui était initialement la classe 3)
3 élèves et 1 professeur dans la classe 1 (qui était initialement la classe 2)
etc...
Voyez-vous une façon simple à comprendre à rapide à exécuter (pour PHP) ?
Merci pour votre aide !
- Selection A
- WRInaute occasionnel

- Messages: 279
- Inscription: 14 Mar 2005
Un conseil : procure toi une doc assez simple des grandes fonctions PHP! c trouvable facilement sur le web.
fonction PHP à utiliser pour trier un tableau : sort() ou rsort() ou ksort() ou krsort() selon tes besoins
fonction PHP à utiliser pour trier un tableau : sort() ou rsort() ou ksort() ou krsort() selon tes besoins
-

nza2k - WRInaute impliqué

- Messages: 771
- Inscription: 16 Jan 2004
Merci pour le conseil Selection A !
Je me suis un peu informé sur ces fonctions et à moins que je n'ai pas tout compris, je pnese qu'en l'état, elles ne répondent pas directement à mes besoins...
Y a sans doute une façon d'arriver au résultat en "développant" une routine qui emploie ces fonctions... Mais je me demande s'il n'existe pas d'autres fonctions qui feraient tout, ou quasisment, "nativement".
C'est ce type de fonctions que je recherche en fait...
Je me suis un peu informé sur ces fonctions et à moins que je n'ai pas tout compris, je pnese qu'en l'état, elles ne répondent pas directement à mes besoins...
Y a sans doute une façon d'arriver au résultat en "développant" une routine qui emploie ces fonctions... Mais je me demande s'il n'existe pas d'autres fonctions qui feraient tout, ou quasisment, "nativement".
C'est ce type de fonctions que je recherche en fait...
-

SuperPJ - WRInaute impliqué

- Messages: 513
- Inscription: 15 Jan 2005
nza2k a écrit:- $ecole['classe']['0']['eleve']='10';
- $ecole['classe']['1']['eleve']='20';
- $ecole['classe']['2']['eleve']='3';
- $ecole['classe']['3']['eleve']='1';
- $ecole['classe']['0']['professeur']='2';
- $ecole['classe']['1']['professeur']='3';
- $ecole['classe']['2']['professeur']='1';
- $ecole['classe']['3']['professeur']='1';
J'aimerais maintenant que PHP m'affiche les classes en les triant par nombre d'élèves :
1 élève et 1 professeur dans la classe 0 (qui était initialement la classe 3)
3 élèves et 1 professeur dans la classe 1 (qui était initialement la classe 2)
etc...
Salut, voici ce que je ferais :
- Code: Tout sélectionner
<?
$ecole['classe']['0']['eleve'] = '10';
$ecole['classe']['1']['eleve'] = '20';
$ecole['classe']['2']['eleve'] = '3';
$ecole['classe']['3']['eleve'] = '1';
$ecole['classe']['0']['professeur'] = '2';
$ecole['classe']['1']['professeur'] = '3';
$ecole['classe']['2']['professeur'] = '1';
$ecole['classe']['3']['professeur'] = '1';
$dernier_index = count($ecole['classe']) - 1;
for( $i=0; $i<=$dernier_index; $i++ )
{
$eleves[] = $ecole['classe']["$i"]['eleve'];
$professeurs[] = $ecole['classe']["$i"]['professeur'];
};
sort( $eleves );
sort( $professeurs );
for( $i=0; $i<=$dernier_index; $i++ )
{
$ecole['classe']["$i"]['eleve'] = $eleves["$i"];
$ecole['classe']["$i"]['professeur'] = $professeurs["$i"];
};
print_r($ecole);
/********** TABLEAU OBTENU **********
Array
(
[classe] => Array
(
[0] => Array
(
[eleve] => 1
[professeur] => 1
)
[1] => Array
(
[eleve] => 3
[professeur] => 1
)
[2] => Array
(
[eleve] => 10
[professeur] => 2
)
[3] => Array
(
[eleve] => 20
[professeur] => 3
)
)
)
*/
?>
Il y a peut-être plus simple mais cette solution est fonctionnelle
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Trier un tableau en PHP
- PHP-Trier un tableau
- Tableau PHP : trier en fonction des valeurs
- [résolu] PHP-Trier un tableau en fonction d'un critére perso
- Trier un tableau par rapport à un autre
- trier les éléments d'un tableau
- Comment chercher dans un tableau en PHP
- Comment mettre une variable texte dans un tableau en php ?
- PHP: Mélanger un tableau de tableau de manière aléatoire
- [PHP] trier 2 tableaux
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités
