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 :

[Tableaux] Classer des resultats


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Par défaut [Tableaux] Classer des resultats
    Bonjour,

    Je me permets de vous soumettre mon pb car je ne vois pas comment le régler.

    J'extrait d'une chaine les valeurs suivante :

    1|3
    1|5
    2|4
    3|2
    3|8

    et j'aimerai additionner la seconde valeur là ou la première est la même.
    Je m'explique :
    Pour ma liste ci dessus je devrais avoir les resultat suivants :

    1|8 (1|3 "+" 1|5)
    2|4
    3|10 (3|2 "+" 3|8)

    qq'un aurait-il une idée comment faire ?

    D'avance Merci

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Ta chaîne est extraite sous quelle forme ? Est-ce un tableau ?

  3. #3
    Membre éclairé Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Par défaut
    une solution rapide :
    je ne sais pas si tes resultats sont stockés dans une variable tableau ou si tu les affiche apres une requete mysql avec un mysql_fetch_array.

    peu importe en faite tu utiliste la fonction implode ou split avec " | " le pipeline en parametres et ensuite tu stocks les resultats dans un tableau puis tu additionne avec les index.

    Solution rapide j'espere que tu m'as compris ^^

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Par défaut
    Pour l'instant j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = "1|3 1|5 2|4 3|2 3|8";
    Ensuite je decompose $result de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $tabesp=explode(" ",$result);
     
    for($j=0;$j<sizeof($tabesp);$j++){ 
       $score = $tabesp[$j];
     
       $decomp=explode("|",$score);
       $ID_EQUIPE = $decomp[0];
       $POINT= $decomp[1];
    }
    Le pb c'est que j'ai un peu de mal a comprendre le fonctionnement des tableau (surtout que si j'ai bien compris c'est à deux dimensions ici)

    Merci pour l'aide

  5. #5
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Attention car dans le code que tu as fourni, tu écrases à chaque passage dans la boucle la valeur ID_EQUIPE et POINT

    Une des solutions à ton problème serait de stocker les valeurs dans un tableau au fur et à mesure de la boucle

    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
     
    $tabesp=explode(" ",$result);
    $tabvaleur = array();
    for($j=0;$j<sizeof($tabesp);$j++){ 
       $decomp=explode("|",$tabesp[$j]);
       $ID_EQUIPE = $decomp[0];
       $POINT= $decomp[1];
     
      if (array_key_exists($ID_EQUIPE,$tabvaleur)){
        $tabvaleur[$ID_EQUIPE] = $tabvaleur[$ID_EQUIPE] + $POINT;
      }
      else {
        $tabvaleur[$ID_EQUIPE] = $POINT;
      }
    }
    J'explique un peu.
    On initialise $tabvaleur comme un tableau,
    Ensuite, on fait tout comme tu avais fait.
    En fin de boucle, on regarde si la clé existe déjà dans le tableau au moyen de array_key_exists()
    Si la clé, ID_EQUIPE existe alors on ajoute la valeur $POINTS
    Si la clé n'existe pas, on la créé, et on lui donne la valeur $POINTS

    A la fin de la boucle, le tableau tabvaleur contient une liste des equipes avec leur points respectifs. Tu peux l'afficher via un foreach

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Par défaut
    Oki j'ai capté le truc.
    Merci d'avoir pris le temps de me mettre une explication et un code détaillé

    Bonne soirée et merci pour votre aide

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

Discussions similaires

  1. Classer des tableaux en PHP
    Par Grinnage dans le forum Langage
    Réponses: 1
    Dernier message: 22/01/2015, 17h29
  2. Comment classer des valeurs dans un tableaux ?
    Par Lekno dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 22/11/2014, 04h19
  3. [Tableaux] Classer des produits
    Par Roromix dans le forum Langage
    Réponses: 4
    Dernier message: 27/09/2006, 15h57
  4. [Tableaux] Classer des variables en décroissant
    Par Mikiman dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2006, 13h51
  5. Réponses: 6
    Dernier message: 04/04/2003, 16h28

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