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 :

Compter éléments d'un tableau multi


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 486
    Points : 877
    Points
    877
    Par défaut Compter éléments d'un tableau multi
    Bonsoir à tous,

    petite question sur les tableaux multi-dimensionnels: j'ai un tableau qui ressemble à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $famille_picsou= array(
                            'oncle picsou',
                            array('riri','fifi','loulou'),
                            array('flagada jones','geo trouvetout'),
                            'bubba'
                           );
    comment puis-je renvoyer le nombre d'éléments "feuille", dans mon cas 7 ? y a-t-il une fonction native pour ca ?

    d'avance merci,

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count($famille_picsou, COUNT_RECURSIVE);

  3. #3
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 486
    Points : 877
    Points
    877
    Par défaut
    merci infiniment !

    pour une raison qui m'échappe, ca n'avait pas fonctionné lorsque j'avais essayé avant de poster...

    juste pour info: je ne comprends pas pourquoi dans le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $food = array('fruits' => array('orange', 'banana', 'apple'),
                  'veggie' => array('carrot', 'collard', 'pea'));
     
    // count récursif
    echo count($food, COUNT_RECURSIVE); // affiche 8
     
    ?>
    le count récursif affiche 8 ?

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour :
    comptons les valeurs de $food
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    1 : array('orange', 'banana', 'apple')
    2 : array('carrot', 'collard', 'pea')
    3 : orange
    4 : banana
    5 : apple
    6 : carrot
    7 : collard
    8 : pea
    Tu ne dois pas oublier les tableaux qui sont aussi des valeurs.

  5. #5
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 486
    Points : 877
    Points
    877
    Par défaut
    bonsoir et merci,

    mais dans mon cas, j'ai aussi 2 tableau non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $famille_picsou= array(
                            'oncle picsou',
                            array('riri','fifi','loulou'),
                            array('flagada jones','geo trouvetout'),
                            'bubba'
                           );
    du coup pourquoi ne me renvoie-t-il pas 9 au lieu de 7 ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'oncle picsou'
    array('riri','fifi','loulou'),
    riri
    fifi
    loulou
    array('flagada jones','geo trouvetout'),
    flagada jones
    geo trouvetout
    bubba
    regarde vers array_walk_recusive, il travaille uniquement sur les valeurs

  7. #7
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 486
    Points : 877
    Points
    877
    Par défaut
    Bonjour et merci pour vos réponses !

    une dernière question et j'arrête de vous embêter avec ca.

    Comment puis-je extraire un tableau venant d'un tableau de tableau ? Je m'explique:

    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
    $a = array(
            "apple"  => array(
                  "color"  => "red",
                  "taste"  => "sweet",
                  "shape"  => "round"    ),
     
            "orange"  => array(
                  "color"  => "orange",
                  "taste"  => "sweet",
                  "shape"  => "round"    ),
     
            "banana"  => array(
                  "color"  => "yellow",
                  "taste"  => "paste-y",
                  "shape"  => "banana-shaped"    )
        );
    je souhaiterais obtenir à partir de $a la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $color=array("red","orange","yellow");
    y a-t-il une simple fonction pour ca, ou dois-je parcourir les éléments du tableau ?

    D'avance merci !

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    toujours pareil regarde array_walk_recusive

  9. #9
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 486
    Points : 877
    Points
    877
    Par défaut
    chalut,

    merci pour votre aide !

    en fait je ne suis pas passé par array_walk_recursive parce que je devais en fait multiplier les éléments de chacun de mes tableaux... dans le cas de $famille_picsou, je dois multiplier 1 x 3 x 2 x 1. Du coup j'ai créé une fonction spécifique:
    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
    function get_number_elements($array)
                    {
                            $number_elts=1;
                            foreach ($array as $arrayelt)
                            {
                                    if (is_array($arrayelt))
                                    {
                                            $number_elts=$number_elts*count($arrayelt);
                                    }
                                    else
                                    {
                                            $number_elts=$number_elts*1;
                                    }
                            }
                            return $number_elts;
                    }
    Merci pour votre aide ! je ferme le topic du coup

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

Discussions similaires

  1. Ajouter un élément dans un tableau multi
    Par laloune dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2013, 14h29
  2. [Tableaux] Compter le nombre d'éléments d'un tableau
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2008, 12h50
  3. Compter le nombre d'éléments d'un tableau
    Par Ishizaki dans le forum ASP.NET
    Réponses: 28
    Dernier message: 21/04/2008, 09h08
  4. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  5. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01

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