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 :

Trier un tableau et additionner certaines clés [PHP 5.1]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut Trier un tableau et additionner certaines clés
    Bonjour à tous,

    Soit le tableau :

    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
     
    Array
    (
        [0] => Array
            (
                [0] => 5.50
                [1] => 0.52
            )
     
        [1] => Array
            (
                [0] => 19.60
                [1] => 5.00
            )
     
        [2] => Array
            (
                [0] => 19.60
                [1] => 2.00
            )
     
        [2] => Array
            (
                [0] => 33.30
                [1] => 12.80
            )
    )
    La clé 1 représente le taux de TVA.
    La clé 2, le montant pour ce taux.

    Comment transformer ce tableau en :

    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
     
    Array(
             [0] => Array
             (
                 [0] => 5.50
                 [1] => 0.52
              )
     
             [1] => Array
             (
                 [0] => 19.60
                 [1] => 7.00
              )
     
             [2] => Array
             (
                 [0] => 33.30
                 [1] => 12.80
              )
    )
    Bref, additionner les montants lorsque les taux sont identiques...Dans cet exemple les deux montants à 19.60 se sont ajoutés.
    Merci du coup de main.

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Ce n'est peut-être pas la solution optimale,
    mais en tout cas voici une solution qui 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
    $entree = array (
    	array(5.50,0.52),
    	array(19.60,5.00),
    	array(19.60,2.00),
    	array(33.30,12.80)
    	);
     
    $tmp = array();	
    foreach ($entree as $ligne) {
    	if (isset($tmp[$ligne[0]])) {
    		$tmp[$ligne[0]]+=$ligne[1];
    	} else {
    		$tmp[$ligne[0]]=$ligne[1];
    	}
    }
     
    $sortie = array();
    foreach ($tmp as $taux => $montant) {
    	$sortie[] = array($taux,$montant);
    }
    echo "<pre>";
    var_dump($sortie);
    echo "</pre>";
    Fred

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 348
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 348
    Billets dans le blog
    17
    Par défaut
    Crée un tableau dont l'index est le taux, la valeur le montant.
    Pour chq élément du tableau d'origine tu vérifies si l'index existe, si c'est le cas tu incrémentes.

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 348
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 348
    Billets dans le blog
    17
    Par défaut
    Grilled par micetf

  5. #5
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Merci beaucoup à tous les deux pour vos lumières.
    La meilleure soluce est effectivement de passer le taux en index et le montant ne valeur.
    Bonne fin de journée.

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

Discussions similaires

  1. Trier un tableau selon ses clés sous Internet Explorer
    Par beninsky dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/10/2010, 12h23
  2. Réponses: 5
    Dernier message: 02/04/2007, 17h49
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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