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 PHP Discussion :

Récupérer l'ordre de trie d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut Récupérer l'ordre de trie d'un tableau
    Bonjour,

    J'ai fait le trie d'un tableau et je l'ai afficher dans un autre, maintenant je veux récupérer l'ordre de trie dans un autre tableau comment est ce que je fait?
    svp aidez moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <table>
    <tr><td>td1</td>
    <td>td2</td>
    <td>td3</td>
    <td>td4</td>
    </tr>
    <td id="td1">33</td>
    <td id="td2">119</td>
    <td id="td3">45</td>
    <td id="td4">10</td>
    <?php $tnTrie= array();
    $tnTrie[0]=33;
    $tnTrie[1]=119;
    $tnTrie[2]=45;
    $tnTrie[3]=10;
    $tTrie= array();
     for($j=0;$j<4;$j++){
     $tTrie[]=$tnTrie[$j];
     }
    sort($tTrie);
    ?>
    <tr></tr>
    <tr>
    <?php
    for($i=0;$i<4;$i++){
    ?><td><?php echo $tTrie[$i];?></td>
    <?php } ?>
    </tr>
    </table>
    <?php $t_ordre= array();
    foreach ($tTrie as $key => $val) {
     foreach ($tnTrie as $keyn => $valn){
      if ($val == $valn)
      {
        $t_ordre[]=$keyn;}
     }
    }
    foreach($t_ordre as $k => $vv) {
      echo "Ordre: \n".$vv."\n";
        switch($vv){
           case(0): echo("HH"); break;
    	   case(1): echo("HMH"); break;
           case(2): echo("HPH"); break;
           case(3): echo("HT"); break;
     
    	   }
    }
    ?>
    </body>
    </html>

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    bonjour,
    Je ne comprends pas exactement ce que tu veux dire par 'ordre de trie'.
    Si c'est les clés dans le nouvel ordre, voici une solution : asort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $fruits = array("lemon", "orange", "banana", "apple");
    asort($fruits);
    foreach ($fruits as $key => $val) {
        echo "$key = $val\n";
    }
    ?>
    Z.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Je m'excuse de ne pas être claire, j'essaye de m'expliquer d'avantage:
    J'ai une table affichant dans la première ligne les produits, dans la deuxième les prix de chaque produits et je veux afficher dans la troisième une image de smile correspondant au prix le plus convenable et ainsi de suite, comme ceçi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         prd1  prd2 prd3 prd4
    Prix  33    119  45   10
    smile :o,   :o(  :o|  :o)
     
    **************************
           0(1) 1(3) 2(2) 3(0)  indiceNonTrié(IndiceTrié) afin de mettre le smile correspondant dans la cellule qui lui convient

    Pour cela j'ai pensé à trier les prix puis pour celui ayant l'indice 0 dans la table trié, correspond à la valeur la moins cher donc un smile qui rit, ... Mais j'arrive pas
    , est ce que mon problème est plus claire maintenant

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    pourquoi ne classe tu pas les produits par ordre croissant de prix ?
    Tu pourras ajouter en dessous les smileys.
    Le client pourrait mieux s'y retrouver dans les prix
    Z.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Je ne peux pas modifier l'énoncé de l'exercice.

    c'est comme ça, que ça se présente et je doit trouver une solution, et je souhaite que vous m'aidiez
    Pour cette exemple ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <table>
    <tr><td>td1</td>
    <td>td2</td>
    <td>td3</td>
    <td>td4</td>
    </tr>
    <td id="td1">333</td>
    <td id="td2">119</td>
    <td id="td3">45</td>
    <td id="td4">10</td>
    <?php 
    $tnTrie= array(333, 119, 45, 10); 
    $tTrie= array();
     for($j=0;$j<4;$j++){
     $tTrie[]=$tnTrie[$j];
     }
    sort($tTrie);
    ?>
    <tr></tr>
    <tr>
    <?php
    for($i=0;$i<4;$i++){
    ?><td><?php echo $tTrie[$i];?></td>
    <?php } ?>
    </tr>
    </table>
    <table><tr>
    <?php $t_ordre= array();
    foreach ($tTrie as $key => $val) {
     foreach ($tnTrie as $keyn => $valn){
      if ($val == $valn)
      {
        $t_ordre[]=$keyn;}
     }
    }
    foreach($t_ordre as $k => $vv) {
      //echo "Ordre: \n".$vv."\n";
        switch($vv){
           case(0): echo("HH"); break; //HH = homme heureux
    	   case(1): echo("HMH"); break;//HmH = homme moins heureux
           case(2): echo("HPH"); break;// hPh = homme pas heureux
           case(3): echo("HT"); break; // hT = homme trisite
     
    	   }
    }
    ?></tr>
    </table>
    </body>
    </html>
    Mais lorsque je veux, afficher le tout dans un tableau et mettre au lieux de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case(0): echo("HH"); break; //HH = homme heureux
    	   case(1): echo("HMH"); break;//HmH = homme moins heureux
           case(2): echo("HPH"); break;// hPh = homme pas heureux
           case(3): echo("HT"); break; // hT = homme trisite
    des td, afin d'y mettre mes images, ça ne marche pas du tout.

  6. #6
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $smileys = array(":)", ":|", ":(", ":((");
    $fruits = array("lemon" => 45, "orange" => 100, "banana" => 80, "apple" => 95);
     
    $array = array_values($fruits);
    $array = array_unique($array);
    sort($array);
     
    foreach ($fruits as $key => $val) {
        echo "$key = $val : " . $smileys[array_search($val, $array)] . "\n";
    }
    ?>
    En espérant que ca t'inspire
    Z.

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

Discussions similaires

  1. [Tableaux] trie d'un tableau multidimensionnel
    Par dede64 dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2006, 11h20
  2. Réponses: 6
    Dernier message: 17/10/2006, 12h21
  3. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54
  4. [javascript/dom] Récupérer le nombre de lignes d'un tableau
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/02/2006, 11h51
  5. Réponses: 13
    Dernier message: 27/06/2005, 14h36

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