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] Choix aléatoires tout en respectant des proportions


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut [Tableaux] Choix aléatoires tout en respectant des proportions
    Bonjour à tous, voila mon problème :

    Dans tableau que je crée en "php" (echo '<table>') je souhaiterai aléatoirement mettre le bgcolor de la cellule en rouge ou en vert.

    Le problème c'est que la proportion entre les cellules rouges et vertes doit correspondre à celle (la proportion) que j'ai fixée.

    Les éléments que j'ai :

    - le nombre de cellule en tout
    - le nombre de cellule verte
    - le nombre de cellule rouge

    merci d'avance.

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il y a pas mal de solutions m'enfin en voila une qui marche :
    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
    <?php
     
    $nbVerts = 10;
    $nbRouges = 20;
     
    $couleurCelluleTab = array();
     
    // ajoutes dans le tableau une ligne "vert" pour chaque ligne devant etre verte
    for($i=0; $i< $nbVerts; $i++)
    {
    $couleurCelluleTab[] = "vert";
    }
     
    // idem avec rouge
    for($i=0; $i< $nbRouges; $i++)
    {
    $couleurCelluleTab[] = "rouge";
    }
     
    // melange le tableau
     
    shuffle($couleurCelluleTab);
     
    // pour chaque ligne prendre la couleur correspondante dans le tableau
    for($i=0; $i< $nbVerts+$nbRouges; $i++)
    {
    echo "Couleur ligne $i : " . $couleurCelluleTab[$i] . "<br/>";
    }
     
    ?>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    es-tu sûr de toi ?

    dans les deux for tu inséres rouge et vert mais tu n'indique pas d'indice.
    c'est normal ?

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu pourrais commencer par tester le code pour voir quand meme...
    et oui c'est normal, l'instruction
    est équivalent a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // recupere le nombre d'éléments
    $nbelets = count($matable);
    // ajoute le nouvel element a la fin du tableau
    // 1er element a 0, 2e a 1, nieme a n
    $matable[$nbelets]  = "aaa";

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    ok ok :d

    Création du tableau en html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo '<table border="1" cellpadding="5" cellspacing="1" width="100%" bgcolor="white">' ;
    for ($i = 0 ; $i < $nb_lig ; $i++)
    {
    	echo '<tr>' ;
    	for ($j = 0 ; $j < $nb_col ; $j++)
    	{
    		echo '<td bgcolor="green"></td>' ;
    	}
    	echo '</tr>' ;
    }
    echo '</table>' ;
    comment je peux faire le lien entre $i $j avec mon tableau de couleur à une dimension ?

    merci encore

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    En admettant que tu aies bien nb_cellules_rouges + nb_cellules_vertes = nblignes*nbcolonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo '<table border="1" cellpadding="5" cellspacing="1" width="100%" bgcolor="white">' ;
    for ($i = 0 ; $i < $nb_lig ; $i++)
    {
    	echo '<tr>' ;
    	for ($j = 0 ; $j < $nb_col ; $j++)
    	{
    		echo '<td bgcolor="' . $couleurCelluleTab [$j + ($i * $nb_col)] .'"></td>' ;
    	}
    	echo '</tr>' ;
    }
    echo '</table>' ;
    En gros, pour la premiere cellule, la formule donne 0 (donc premiere case du tableau. Pour la deuxieme, la formule donne 1 (j=1, i=0), donc deuxieme case du tableau...
    pour la premiere cellule de la deuxieme ligne la formule donne $ nbcol (i=1, j=0)
    et ainsi de suite

    pour la derniere cellule ca te donne $nbcol * ($nbligne-1) + $nbcol ce qui fait bien le nombre total de cellules

    (pas sur d'avoir été clair )

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    tu sais que je t'aime toi ?

    merci beaucoup !!!!!!!!!

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

Discussions similaires

  1. Img respect des proportions
    Par DAN14 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/09/2012, 22h06
  2. Réponses: 1
    Dernier message: 30/04/2011, 18h22
  3. Listview et respect de proportion des images
    Par dvince94 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 25/06/2009, 22h32
  4. [Toutes versions] problème pour regrouper des valeurs de cellules tout en respectant l'ordre
    Par songs_of_liberty dans le forum Excel
    Réponses: 5
    Dernier message: 16/04/2009, 18h43
  5. Réponses: 4
    Dernier message: 11/02/2008, 14h32

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