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 :

NetBeans / traitement de tableau de tableaux / Boucles imbriquées


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Points : 26
    Points
    26
    Par défaut NetBeans / traitement de tableau de tableaux / Boucles imbriquées
    Bonjour,

    actuellement j'ai un tableau qui contient des tableau :
    Tab[
    tab1["projet1",2015,0.5 ...]
    tab2["projet2"...]
    ]

    j'aimerai faire un ordonnancement en fonction de la colonne 5 de chaque tableau (du plus grand au plus petit).
    J'ai donc chercher des fonction déjà existantes et j'ai fais chou blanc.

    Alors j'ai développé une fonction qui me semble plutôt correcte seulement NetBeans m'affiche le message suivant :
    "Too Many Nested Blocks In Function Declaration"

    Voilà mon code :
    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
    function compare($tabProjet){
         var=cont($tabProjet);
         for ($i=0;$i<var-1;$i++){
              for($j=1;$j<var-1;$j++){
                    if($tabProjet[$i][5]<$tabProjet[$j][5]){
                         for($k=0;$k<7;$k++){
                               $temp=$tabProjet[$i][$k];
                               $tabProjet[$i][$k]=$tabProjet[$j][$k];
                               $tabProjet[$j][$k]=$temp;
                          }
                      }
                 }
             }
    return $tabProjet;
    }
    Je voulais donc savoir deux choses :
    1) Comment régler ce problème de boucles imbriquées ?
    2)Y a t il une autre manière pour ordonner mon tableau ?

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Finalement j'ai trouvé une façon de régler mon problème de traitement de tableau (on est jamais mieux servi que par sois même ):

    Remplacer le code ci dessus par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function ordonner($tabProjet){
        $var=count($tabProjet);
        for($i=0;$i<$var;$i++){
            for($j=$i+1;$j<$var;$j++){
                if($tabProjet[$i][5]<$tabProjet[$j][5]){
                    $temp=$tabProjet[$i];
                    $tabProjet[$i]=$tabProjet[$j];
                    $tabProjet[$j]=$temp;
                }
            }
        }
        return $tabProjet;
    }
    Mais j'aimerai tout de même savoir si quelqu'un sait comment régler le problème du nombre maximum de boucles imbriquées dans une même fonction, au cas où cela reviendrait !

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Avant d'être totalement happé par la spirale infernale des boucles imbriquées, tu peux jeter un œil du coté de usort:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ordonner($tabProjet) {
        usort($tabProjet, function ($a, $b) {
            if ($a[5] == $b[5]) return 0;
            return ($a[5] > $b[5]) ? -1 : 1;
        });
        return $tabProjet;
    }

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    J'ai éssayé la fonction usort, mais d'après ce que j'ai compris elle ne fonctionne que sur les tableau unidimensionnels et dans mon cas cela ne fonctionne pas. (j'ai commencé par faire mon marché ici : http://php.net/manual/fr/array.sorting.php )

    J'ai déjà essayer ton code et le résultat n'était pas très probant !

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Citation Envoyé par Supoh
    elle ne fonctionne que sur les tableaux unidimensionnels
    Première nouvelle!

    Si tu obtiens un résultat "pas trés probant", c'est que tu as dû rater quelque chose dans ta tentative: demo

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Ha oui en effet ça à l'air de bien fonctionner, comme je l'ai dis "d'après ce que j'ai compris" cela ne fonctionne pas alors autant pour moi, j'ai du faire une erreur quelque part !

    Merci beaucoup pour ton aide !

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

Discussions similaires

  1. Boucles imbriquées et traitement long
    Par barnoufal dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2007, 20h52
  2. Réponses: 3
    Dernier message: 04/08/2006, 19h24
  3. [Tableaux] Boucle sur un tableau associatif
    Par alexfrere dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2006, 15h44
  4. [Tableaux] Boucle dans un tableau
    Par apprenti-fab dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2006, 10h14
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

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