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 :

Tri d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut Tri d'un tableau
    Salut à tous

    Voila j' essai de trier un tableau mais je n'arrive pas à savoir quelle colonne contient la plus forte valeur...
    Pour mieux comprendre mon explication voici le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $col1=6;
    $col2=2;
    $col3=4;
    $resultat = array($col1, $col2, $col3);
    rsort($resultat);
    foreach ($resultat as $key => $val) {
       echo "colonne[" . $key . "] = " . $val . "\n";
    }
    ?>
    ce qui me donne le résultat suivant :

    colonne[0] = 6 colonne[1] = 4 colonne[2] = 2
    Le tri a été correctement fait mais j'aimerai connaitre uniquement la colonne
    et surtout récupérer la variable "$col1" dans cet exemple.

    J'espère que j'ai été clair (je doute).

    D'avance merci

    @+

    Naje83

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton erreur est de ne pas travailler dés le début avec un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $col[1]=6;
    $col[2]=2;
    $col[3]=4;
    echo max($col);
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Merci pour ta réponse.

    Si je comprends bien cela met dans la variable "$col" le chiffre le plus grand, mais comment mettre dans une variable le "nom" de la colonne à proprement parler.
    J'aimerai connaitre la colonne qui a obtenu le plus grand nombre (c'est un test et en additionnant les réponses par colonne on prend la colonne qui a obtenue le plus grand score pour déterminer un réponse ).

    Encore merci

    @+

    Naje83

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    pour faire ça tu peux utiliser la fonction http://php.net/array_search

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Non en fait ça ne modifie pas $col, ça retourne juste la valeur maxi dans le tableau $col.
    Sinon la version foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $col[0]=6;
    $col[1]=2;
    $col[2]=4;
    $maxKey = 0;
    $maxValue = $col[0];
    foreach($col as $k => $v) {
    	if($v > $maxValue) {
    		$maxKey = $k;
    	}
    }
    ?>
    et pour sauter l'index 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $col[0]=6;
    $col[1]=2;
    $col[2]=4;
    $maxKey = 0;
    $maxValue = next($col);
    while ($v = next($col)) {
    	if ($v > $maxValue) {
    		$maxKey = key($col);
    	}
    }
    ?>

  6. #6
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Un grand merci pour ce cours de php qui me fait le plus grand bien...

    Le code faisant sauter l'index [0] semble ne pas fonctionner.

    Par contre la version foreach me convient tout à fait

    Encore merci

    @+

    Naje83

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

Discussions similaires

  1. Tri d'un tableau en 2D
    Par sniperseb dans le forum C
    Réponses: 4
    Dernier message: 05/01/2006, 17h33
  2. Réponses: 6
    Dernier message: 16/09/2005, 11h30
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 19h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 11h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 09h43

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