Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/01/2012, 18h14   #1
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
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 :
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,
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 18h21   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Code :
count($famille_picsou, COUNT_RECURSIVE);
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 18h33   #3
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
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 :
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 ?
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 18h44   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour :
comptons les valeurs de $food
Code :
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.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 18h52   #5
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
bonsoir et merci,

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

Code :
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 ?
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 19h15   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
9
Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 10h44   #7
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
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 :
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 :
$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 !
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 15h23   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
toujours pareil regarde array_walk_recusive
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 18h42   #9
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
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 :
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
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h03.


 
 
 
 
Partenaires

Hébergement Web