Tris PHP sur tableaux multidimensionnels

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par nza2k, 28 Février 2010.

  1. nza2k
    nza2k WRInaute impliqué
    Inscrit:
    16 Janvier 2004
    Messages:
    892
    J'aime reçus:
    2
    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
     
  2. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    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.
     
  3. chris81
    chris81 WRInaute discret
    Inscrit:
    8 Mars 2005
    Messages:
    164
    J'aime reçus:
    0
    ça m'intéresse aussi !
    si quelqu'un à la réponse
     
  4. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1
    Quand tu construis ton premier tableau, tu n'as pas moyen d'en créer un annexe avec juste la population ?

    Code:
    $tab[region][1][population] = 100
    $tab[region][2][population] = 50
    $tab[region][3][population] = 30
    $tab[region][4][population] = 200
    et

    Code:
    $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) ?
     
  5. Nic'O
    Nic'O WRInaute discret
    Inscrit:
    13 Mai 2009
    Messages:
    180
    J'aime reçus:
    0
    j'avais déjà été confronté au problème, après moultes essais, j'avais réussi avec ceci .

    Code:
    		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');
    
     
  6. nza2k
    nza2k WRInaute impliqué
    Inscrit:
    16 Janvier 2004
    Messages:
    892
    J'aime reçus:
    2
    Merci à tous pour vos réponses !

    Voici comment je m'en suis sorti, grâce à votre aide :

    Code:
    $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]);
    
    
     
Chargement...
Similar Threads - Tris PHP tableaux Forum Date
Maitrise du PHP ? Développement d'un site Web ou d'une appli mobile 18 Septembre 2007
Quelqu'un maîtrise t-il l'asp ? Débuter en référencement 6 Janvier 2011
Vous maîtrisez bien Zen Garden ? Développement d'un site Web ou d'une appli mobile 25 Mai 2010
Encore un nouveau site TETRIS Demandes d'avis et de conseils sur vos sites 14 Août 2009
"Partager sur facebook" maitriser la description Développement d'un site Web ou d'une appli mobile 25 Mai 2009
Maitriser la taille d'affichage des photos - sous firefox et IE Développement d'un site Web ou d'une appli mobile 23 Janvier 2009
Maitriser la connexion d'un membre Demandes d'avis et de conseils sur vos sites 11 Décembre 2008
écriture avec stristr Développement d'un site Web ou d'une appli mobile 8 Novembre 2008
Recherche une personne maitrisant le flash :p Développement d'un site Web ou d'une appli mobile 15 Août 2007
triste jour la fin de google analytics V1 !!! Google Analytics 20 Juillet 2007
Imbriquer les tris en SQL avec ORDER BY Développement d'un site Web ou d'une appli mobile 8 Mars 2007
Google lance une campagne mondiale contre l'illettrisme Google : l'entreprise, les sites web, les services 5 Octobre 2006
Google relativement bien maîtrisé Problèmes de référencement spécifiques à vos sites 2 Mars 2006
RESOLU ! SELECT NAME ....<option value : maîtriser la tai Développement d'un site Web ou d'une appli mobile 24 Janvier 2006
Interview de Tristan Nitot Le café de WebRankInfo 8 Juin 2004
Indent en mode PHP ? Développement d'un site Web ou d'une appli mobile 9 Juin 2022
Arborescence de classes PHP et séquentialité. Développement d'un site Web ou d'une appli mobile 16 Mai 2022
Afficher des infos depuis plusieurs page en PHP Développement d'un site Web ou d'une appli mobile 23 Mars 2022
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021