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 :

Nombre de résultats dans un tableau


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Nombre de résultats dans un tableau
    Bonjour,

    Je souhaiterais afficher le nombre de résultats de tableaux mais je n'arrive pas à avoir le résultat exact pour mon exemple ci-dessous.

    Ainsi, si j'ai 2 exemples de la sorte :

    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
    28
     
     
    // Premier exemple
    array(4)
    { 
    	[0]=> array(5)
    	{ 
    	["Type"]=> string(8) "03.01.05" ["Libelle"]=> string(27) "Image principale de l'objet"
    	}
    	[1]=> array(5)
    	{
    	 ["Type"]=> string(8) "03.01.01" ["Libelle"]=> string(5) "Image" 
    	}
    	[2]=> array(5) 
    	{
    	 ["Type"]=> string(8) "03.01.01" ["Libelle"]=> string(5) "Image" 
    	}
    	[3]=> array(5)
    	{
    	 ["Type"]=> string(8) "03.01.01" ["Libelle"]=> string(5) "Image" 
    	}
    }
     
    // Second exemple
    array(6)
    {
                 ["Type"]=> string(8) "03.01.05" ["Libelle"]=> string(27) "Image principale de l'objet" "
    }
    Dans mon premier exemple, je souhaite afficher qu'il y a 4 résultats dans mon tableau car j'ai 4 tableaux à l'intérieur. J'y arrive en faisant un simple count sur mon tableau.

    Mon problème est sur le second exemple ou le count me renvoie 6 car il compte les valeurs à l'intérieur de ce tableau alors que je voudrais avoir 1 résultat car c'est comme si je n'avais qu'un seul tableau à l'intérieur...

    Ca peut paraître ainsi tout simple mais je n'ai pas eu de réponse encore à ce sujet.
    Merci d'avance de votre aide.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Pour que celà soit équitable aux niveau de tes exemples (et au niveau de ta requête SQl unique), il faut que tu change la structure du deuxième exemple telle que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    array(1)
    { 
    	[0]=> array(6)
    	{ 
    	["Type"]=> string(8) "03.01.05" ["Libelle"]=> string(27) "Image principale de l'objet" "
    	}
    }

  3. #3
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    comment as tu déclaré ce tableau ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Je ne peux malheuresement pas rendre équitable les 2 tableaux car ces données proviennent d'un webservice sur lequel je n'ai pas la main.

    Y'a t-il ainsi une solution qui me permettrait de régler cela de mon côté ?

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Dans ce cas, il va falloir que tu parcours ton tableau à chaque exemple ...

    Il y a peut être une possibilité avec in_array ou alors (celle qui me vient plus à l'esprit) un foreach (array_expression as $key => $value) ....

    Dans la deuxième, tu testes à chaque fois la clé $key avec "type" par ex, et tu incrémentes à chaque fois un compteur ....

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Dans l'idée de ce que propose Fench, avec de la récursivité pour rendre le biniou polyvalent :

    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
    28
    <?php
    $a1 = array(
        array("Type"=>  "03.01.05", "Libelle"=> "Image principale de l'objet")
        ,
        array( "Type"=>  "03.01.01", "Libelle"=>  "Image" )
        ,
        array( "Type"=>  "03.01.01", "Libelle"=>  "Image" )
        ,
        array( "Type"=>  "03.01.01", "Libelle"=>  "Image" )
        );
     
    $a2 = array("Type"=>  "03.01.05", "Libelle"=> "Image principale de l'objet");
     
    function snafCount($myArray)
    {
        $total = 0;
     
        foreach($myArray as $key=>$value) {
            if (is_array($value))
                $total += snafCount($value);
            else
                if ($key == 'Type') $total += 1;
        }
        return $total;
    }
     
    print snafCount($a1);
    print snafCount($a2);

Discussions similaires

  1. [Vxi3] Nombre de résultats dans tableau avec filtre
    Par Elsa1 dans le forum Webi
    Réponses: 13
    Dernier message: 22/12/2011, 14h25
  2. nombre plus present dans un tableau
    Par Hachmoon dans le forum C
    Réponses: 8
    Dernier message: 21/11/2006, 16h21
  3. [VB6] Nombre d'element dans un tableau ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/09/2006, 22h23
  4. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  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