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] Imposer des bornes pour un array_count_value()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut [Tableaux] Imposer des bornes pour un array_count_value()
    Salut tout le monde !

    En fait, j'ai un petit soucis, j'aurais besoin ce compter les occurrences d'une valeur dans mon tableau mais en fixant des bornes, par exemple uniquement entre les index 0 et 7 ...

    ce n'est malheureusement pas possible avec array_count_value() ...

    connaissez vous une autre fonction ou une technique ?

    Merci bien pour votre aide ! .

    @+.

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    peut etre comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $x=0;
     
    foreach (ton_array, $key=>$val) {
         if ($val>=0 && $val<=7) {
              $x++;
         }
    }
     
    echo $x;
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  3. #3
    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
    une virgule dans un foreach ?

  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
    svnito, array_slice sera ton amie

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    ben ca doit etre "as" au lieu de la virgule ...

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Mr N.
    svnito, array_slice sera ton amie
    je ne connais pas cette fonction tiens ...
    tu peux me l'expliquer tout vite ??

    merki en tout cas !

  7. #7
    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
    Citation Envoyé par schnito
    tu peux me l'expliquer tout vite ??
    Je ne peux pas faire plus concis =>
    http://php.net/array_slice


  8. #8
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    OK merki ! j'ai saisi, je pense que ca pourra me servir effectivement !

    En fait le truc, c que je dois faire un tableau HTML en fontion d'un tableau retourné par une requete oracle .
    J'ai des group by sur cette requete, donc j'ai plusieurs lignes d'une colonne pour une autre colonne ...

    En fait, je dois calculer le rowspan de la colonne tjrs en fonction de la colonne precedente ... je sais pas si je me suis fait comprendre ...

  9. #9
    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
    j'ai plus ou moins compris, mais vu les éléments que tu fournis je vois pas le rapport avec array_count_values et array_slice

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    En fait, le tableau que me retourne ma requete et de ce type, et j'aimerais faire une fonction generique qui me mette tous les champs et les valeurs retournés dans un tableau HTML avec les bon rowspan en fonction des group by ...

    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
    29
    30
    31
    32
    33
     
     
    tabColsLignes: 
    Array
    (
        [NUMPAGE] => Array
            (
                [0] => 1007
                [1] => 1007
                [2] => 1007
                [3] => 1007
                [4] => 1007
                [5] => 1007
                [6] => 5067
                [7] => 5067
                [8] => 5067
                [9] => 5067
            )
     
        [TYPE] => Array
            (
                [0] => fldtyp_CHK
                [1] => fldtyp_DBL
                [2] => fldtyp_DTM
                [3] => fldtyp_INT
                [4] => fldtyp_OPT
                [5] => fldtyp_TXT
                [6] => fldtyp_DBL
                [7] => fldtyp_DTM
                [8] => fldtyp_NOT
                [9] => fldtyp_OPT
     
    )

    Je me sers de array_count_values() pour calculer les occurrence d'une valeur dans mon tableau, donc les rowspan de mes colonnes ...
    Ensuiten je dois calculer le rowspan d'une colonne en fonction de la precedente, donc calculer un nouveau span en fonction du precedent ...

    C dur a expliquer putain ...

    Avec l'exemple de mon tableau, j'aurai une 1ere colonne de rowspan 7 (on a 7 fois 1007), et ensuite 7 lignes pour afficher les typed ...
    On passe ensuite a une nouvelle ligne, avec un 1ere colonne de rowspan 4 ...

    En tou cas merki d'essayer de m'aider malgré mes explications de chiotte ...

  11. #11
    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
    Est-ce qu'avec une structure comme celle ci-dessous ca ne serait pas plus simple ?
    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
     
    tabColsLignes:
    Array
    (
        [1007] => Array
            (
                [0] => fldtyp_CHK
                [1] => fldtyp_DBL
                [2] => fldtyp_DTM
                [3] => fldtyp_INT
                [4] => fldtyp_OPT
                [5] => fldtyp_TXT
            )
     
        [5067] => Array
            (
     
                [0] => fldtyp_DBL
                [1] => fldtyp_DTM
                [2] => fldtyp_NOT
                [3] => fldtyp_OPT
     
    )
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($tabColsLignes as $numpage => $types) {
       $rowspan = count($types);
       ...
       foreach($types as $type) {
          ...
       }
    }

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    ah si, ca serait tellement plus simple ...

    mais je dois prendre le tableau que me genere la requete ...

    et puis la avec ton exemple, c pour 2 colonnes ... dans mon cas j'en ai 5 ...

    un module, des pages groupées sur le module, des types groupées sur la page, des nb de champs sur les types ...

    je pense pas pouvoir recuperer un tableau comme le tien...

  13. #13
    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
    C'est ca que tu veux générer ?
    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
     
    +----+----+----+----+----+
    +    +    +    +    +----+
    +    +    +    +----+----+
    +    +    +    +    +----+
    +    +    +----+----+----+
    +    +    +    +    +----+
    +    +    +    +----+----+
    +    +    +    +    +----+
    +    +----+----+----+----+
    +    +    +    +    +----+
    +    +    +    +----+----+
    +    +    +    +    +----+
    +    +    +----+----+----+
    +    +    +    +    +----+
    +    +    +    +----+----+
    +    +    +    +    +----+
    +----+----+----+----+----+
    ...

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    exactement !!!

  15. #15
    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
    Tu montrer ton code qui construit $tabColsLignes à partir de ta requete ?

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    c une fonction php avec oracle qui me retourne ce type de tableau, c pas moi qui le construis ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $stmt = OCIParse($glbcnnOra8, $sql);
    OCIExecute($stmt,OCI_DEFAULT);
    $intNbrLigneResult = ocifetchstatement ($stmt, &$tabResultRequete);

  17. #17
    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
    Désolé si c'est un peu indigeste
    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
     
    $intNbrLigneResult = ocifetchstatement ($stmt, &$tabResultRequete); 
    $tablo = array();
    for($i = 0 ; $i < $intNbrLigneResult ; $i++) {
       if (!isset($tablo[$tabResultRequete['MODULE'][$i]])) {
          $tablo[$tabResultRequete['MODULE'][$i]] = array('rowspan' => 0, 'numpages' => array());
       }
       if (!isset($tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]])) {
          $tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]] = array('rowspan' => 0, 'types' => array());
       }
       if (!isset($tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]]['types'][$tabResultRequete['TYPE'][$i]])) {
          $tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]]['types'][$tabResultRequete['TYPE'][$i]] = array('rowspan' => 0, 'champs' => array());
       }
       $tablo[$tabResultRequete['MODULE'][$i]]['rowspan']++;
       $tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]]['rowspan']++;
       $tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]]['types'][$tabResultRequete['TYPE'][$i]]['rowspan']++;
       $tablo[$tabResultRequete['MODULE'][$i]]['numpages'][$tabResultRequete['NUMPAGE'][$i]]['types'][$tabResultRequete['TYPE'][$i]]['champs'][] = $tabResultRequete['CHAMP'][$i];
    }
     
    var_dump('<pre>', $tablo, '</pre>');
    je connais pas le nom de tes colonnes et il en manque une...
    Mais est-ce que tu peux essayer d'adapter ce script à ton tableau de resultat et voir ce que ca donne ?

    Attention, ce n'est pas The solution !

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    oula !

    c vraiment dur a comprendre...

    tu fais quoi exactement ? (en algo)

    j'ai moi aussi une idée d'algo ...

    si elle marche pas j'essaye d'adapter ton code .

    Merci beaucoup !

    @+.


  19. #19
    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
    j'essaie de construire un tableau de cette forme :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    array (
       'module_1' => array (
          'rowspan' => 16,
          'numpages' => array (
             'numpage_1' => array (
                'rowspan' => 8,
                'types' => array (
                   'type_1' => array (
                      'rowspan' => 4,
                      'champs' => array (
                         'champ_1',
                         'champ_2',
                         'champ_3',
                         'champ_4'
                      )
                   ),
                   'type_2' => array (
                      'rowspan' => 4,
                      'champs' => array (
                         'champ_5',
                         'champ_6',
                         'champ_7',
                         'champ_8'
                      )
                   )
                )
             ),
             'numpage_2' => array (
                'rowspan' => 8,
                'types' => array (
                   'type_3' => array (
                      'rowspan' => 4,
                      'champs' => array (
                         'champ_9',
                         'champ_10',
                         'champ_11',
                         'champ_12'
                      )
                   ),
                   'type_4' => array (
                      'rowspan' => 4,
                      'champs' => array (
                         'champ_13',
                         'champ_14',
                         'champ_15',
                         'champ_16'
                      )
                   )
                )
             )
          )
       )
    )

  20. #20
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par Mr N.
    une virgule dans un foreach ?
    desole, je n'etais pas reveille ce matin
    en plus je reviens 5h00 apres la bataille. Desole, j'ai eu plein de problemes...
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Imposer des restrictions pour des textboxes
    Par lcoulon dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/07/2011, 10h37
  2. Imposer des restrictions pour des textboxes
    Par lcoulon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/07/2011, 17h50
  3. [WD12] Imposer des , ou . pour des chiffres
    Par chapeau_melon dans le forum WinDev
    Réponses: 9
    Dernier message: 20/06/2008, 14h11
  4. Réponses: 4
    Dernier message: 09/01/2007, 11h31
  5. Utilisation des références pour les tableaux
    Par Bouboubou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 14/12/2005, 13h47

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