Tris PHP sur tableaux multidimensionnels
6 messages
• Page 1 sur 1
-

nza2k - WRInaute impliqué

- Messages: 771
- Inscription: 16 Jan 2004
Tris PHP sur tableaux multidimensionnels
Bonjour... ou Bonne nuit,
Question bizarre pour un samedi soir à 3H du mat, mais bon...
Prenons un exemple de tableau multidimensionnel php :
$tab[region][1][population] = 100
$tab[region][2][population] = 50
$tab[region][3][population] = 30
$tab[region][4][population] = 200
Pour l'exemple, ce tableau ne comprend que deux valeurs.
Bien entendu, imaginez un tableau avec plusieurs régions, et plusieurs infos par régions (nom, nombre de départements, superficie, etc...).
J'aimerais pouvoir trier le tableau de l'exemple par ordre croissant de population.
Comment je fais ça de façon efficace ?
Merci par avance pour votre aide
Question bizarre pour un samedi soir à 3H du mat, mais bon...
Prenons un exemple de tableau multidimensionnel php :
$tab[region][1][population] = 100
$tab[region][2][population] = 50
$tab[region][3][population] = 30
$tab[region][4][population] = 200
Pour l'exemple, ce tableau ne comprend que deux valeurs.
Bien entendu, imaginez un tableau avec plusieurs régions, et plusieurs infos par régions (nom, nombre de départements, superficie, etc...).
J'aimerais pouvoir trier le tableau de l'exemple par ordre croissant de population.
Comment je fais ça de façon efficace ?
Merci par avance pour votre aide
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Tris PHP sur tableaux multidimensionnels
Pas sûr que ça puisse t'aider, mais pour trier en croissant, la fonction array_multisort permet de jouer un peu :
fr2.php.net/manual/en/function.array-multisort.php
Après ça dépends un peu, mais peut-être qu'à la génération, ça peut être plus pratique.
fr2.php.net/manual/en/function.array-multisort.php
Après ça dépends un peu, mais peut-être qu'à la génération, ça peut être plus pratique.
-

dorian53 - WRInaute passionné

- Messages: 2217
- Inscription: 10 Avr 2005
Re: Tris PHP sur tableaux multidimensionnels
Quand tu construis ton premier tableau, tu n'as pas moyen d'en créer un annexe avec juste la population ?
et
Après tu fais juste un asort($tab2) et puis tu réalises le traitement que tu veux avec un foreach dessus (construction d'un nouveau tableau trié par exemple ou directement l'opération souhaitée) ?
- Code: Tout sélectionner
$tab[region][1][population] = 100
$tab[region][2][population] = 50
$tab[region][3][population] = 30
$tab[region][4][population] = 200
et
- Code: Tout sélectionner
$tab2[region] = 100
$tab2[region] = 50
$tab2[region] = 30
$tab2[region] = 200
Après tu fais juste un asort($tab2) et puis tu réalises le traitement que tu veux avec un foreach dessus (construction d'un nouveau tableau trié par exemple ou directement l'opération souhaitée) ?
-

Nic'O - WRInaute discret

- Messages: 181
- Inscription: 13 Mai 2009
Re: Tris PHP sur tableaux multidimensionnels
j'avais déjà été confronté au problème, après moultes essais, j'avais réussi avec ceci .
- Code: Tout sélectionner
function array_sort($array, $key)
{
for ($i = 0; $i < sizeof($array); $i++) {
$sort_values[$i] = $array[$i][$key];
}
arsort ($sort_values);
reset ($sort_values);
while (list ($arr_key, $arr_val) = each ($sort_values)) {
$sorted_arr[] = $array[$arr_key];
}
return $sorted_arr;
}
$results = array_sort($tonarray,'nom_de_la_clef_comme_population');
-

nza2k - WRInaute impliqué

- Messages: 771
- Inscription: 16 Jan 2004
Re: Tris PHP sur tableaux multidimensionnels
Merci à tous pour vos réponses !
Voici comment je m'en suis sorti, grâce à votre aide :
Voici comment je m'en suis sorti, grâce à votre aide :
- Code: Tout sélectionner
$tab[region][1][population] = 100;
$tab[region][2][population] = 50;
$tab[region][3][population] = 30;
$tab[region][4][population] = 200;
$population[1] = 100;
$population[2] = 50;
$population[3] = 30;
$population[4] = 200;
array_multisort($population, $tab[region]);
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google a désigné le vainqueur du concours de programmation 2002 - 31-05-2002
- Nouvelle version pour Blogger - 11-05-2004
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
