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] Réorganiser un tableau


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 30
    Points
    30
    Par défaut [Tableaux] Réorganiser un tableau
    Bonjour,

    J'ai le tableau suivant :

    Array
    (
    [0] => Array
    (
    [0] => Array
    (
    [ENSEIGNE] =>
    [TYPE] =>
    [NB] =>
    [IDACTION] => 126
    )

    )

    [1] => Array
    (
    [0] => Array
    (
    [ENSEIGNE] => ALAPA
    [TYPE] => 1
    [NB] => 1
    [IDACTION] => 149
    )

    )

    [2] => Array
    (
    [0] => Array
    (
    [ENSEIGNE] => ALAPA
    [TYPE] => 1
    [NB] => 1
    [IDACTION] => 148
    )

    )

    [3] => Array
    (
    [0] => Array
    (
    [ENSEIGNE] =>
    [TYPE] =>
    [NB] =>
    [IDACTION] => 147
    )

    )

    )

    Savez-vous comment je peux faire svp pour réorganiser le tableau pour avoir le NB de mails par ENSEIGNE et par TYPE ? Par exemple, ici j'ai 2 mails ALAPA de type 1.
    Il faut peut-être utiliser array_count_values($array) mais cette fonction nous envoie un tableau "dépareillé" à savoir qu'on aura le nb de valeurs TYPE = 1, le nb de valeurs ENSEIGNE = ALAPA...

    Pourriez-vous me conseiller svp?

    Merci

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il faut savoir ce que tu veux.
    Réorganiser ton tableau ou compter le nombre de mail pour une enseigne et un type donné ?

    Pour la deuxième option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $nb = 0;
    foreach($tablo as $tab1) {
       foreach($tab1 as $tab2) {
          if ($tab2['ENSEIGNE'] == 'ALAPA' && $tab2['TYPE'] == 1) {
             $nb += $tab2['NB'];
          }
       }
    }
    Quant à la première, il nous manque des informations quand à la nature fonctionnelle du contenu de ton tableau, par exemple quel différence entre la première et la quatrième entrée ?

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    En fait c'est la deuxième option qui m'intéresse, compter le nb de mails par enseigne et par type sachant que le type et l'enseigne ne sont pas connus à l'avance. Je ne peux donc pas faire des if explicites sur 'ALAPA' ou sur le type '1'.

    Je te remercie,

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pourquoi enseigne, type ou nb peuvent être vides ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    cela veut dire que dans la base aucun mail n'a été envoyé, je pourrai dans ce cas supprimer ces enregistrements pour avoir un tableau propre.

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    hmm, je dirais :
    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
     
    $mails_envoyes = array();
    foreach($tablo as $tab1) {
       foreach($tab1 as $tab2) {
          if ($tab2['ENSEIGNE'] != '' && $tab2['TYPE'] != '') {
             if (!isset($mails_envoyes[$tab2['ENSEIGNE']])) {
                $mails_envoyes[$tab2['ENSEIGNE']] = array();
             }
             if (!isset($mails_envoyes[$tab2['ENSEIGNE']][$tab2['TYPE']])) {
                $mails_envoyes[$tab2['ENSEIGNE']][$tab2['TYPE']] = $tab2['NB'];
             } else {
                $mails_envoyes[$tab2['ENSEIGNE']][$tab2['TYPE']] += $tab2['NB'];
             }
          }
       }
    } 
     
    var_dump('<pre>', $mails_envoyes, '</pre>');

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Je te remercie beaucoup, j'obtiens en effet par enseigne, le nb de mails par type, c'est parfait

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

Discussions similaires

  1. [Tableaux] Réorganiser un tableau apres un merge()
    Par Death83 dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2006, 02h39
  2. Réponses: 11
    Dernier message: 09/11/2005, 14h59
  3. [Tableaux] submit un tableau de donnee
    Par naourass dans le forum Langage
    Réponses: 6
    Dernier message: 09/11/2005, 11h05
  4. [Tableaux] tri de tableau
    Par rdams dans le forum Langage
    Réponses: 19
    Dernier message: 08/11/2005, 14h46
  5. Réponses: 3
    Dernier message: 26/09/2005, 23h24

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