IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Tri sur les valeurs d'un tableau associatif à x dimensions


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Tri sur les valeurs d'un tableau associatif à x dimensions
    Bonjour à tous,
    Je n'arrive pas à trier (ordre lexical) les valeurs d'un tableau (hachage de hachage à la puissance 4). je plante le décor...
    J'ai un tableau représentant une liste d'endroits (premières clefs) avec pour chaque endroit une liste de locaux (secondes clefs) avec pour chaque local une liste d'étagères (troisièmes clefs) avec pour chaque étagère une liste de livres avec pour chaque livre son titre, son auteur, son éditeur, etc.). Je voudrais créer un fichier texte avec la liste des livres où leurs titres seraient classés par ordre lexical accompagnés de leurs localisations (bien entendu). Dois-je préciser que je ne connais pas les noms des différentes clefs (sauf la clef {titre_livre}) composant le tableau et qu'il y a plusieurs livres avec le même titre.
    comment puis-je m'en sortir aver les instructions" foreach (sort{...}keys values, etc.? Les explications des cours Perl sur les tris de tableaux associatifs s'arrètent en général au premier hachage...

    merci d'avance

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ta structure n'est pas adapté à ta demande, commence par la remettre dans le bon ordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    my %book_location;
    for my $adress ( keys %location ) {
      for my $place ( keys %{$location{$adress}} ) {
        for my $shelf ( keys %{$location{$adress}{$place}} ) {
          for my $book ( @{$location{$adress}{$place}{$shelf}} ) {
            $book_location{$book} = "$adress, $place, $shelf";
          }
        }
      }
    }
     
    for my $book ( sort (keys %book_location) ) {
      print "...";
    }
    --
    Jedaï

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci,
    J'ai compris la méthode et je vai l'adapter à mon script.

    A+

    PS : je n'arrive plus à incorporer la balise "RESOLU" au formulaire de réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri sur les valeurs d'une HashTable avec duplicats
    Par extenbrisadlucem dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 01/08/2008, 11h41
  2. Réponses: 2
    Dernier message: 06/09/2007, 15h08
  3. Réponses: 3
    Dernier message: 25/08/2007, 09h45
  4. [Tableaux] Test sur les valeurs d'un tableau
    Par roux-JO dans le forum Langage
    Réponses: 3
    Dernier message: 08/07/2007, 10h49
  5. moyenne sur les valeurs d'un même tableau
    Par DelphLaga dans le forum Langage
    Réponses: 12
    Dernier message: 25/09/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo