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 :

variable dans tableau [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut variable dans tableau
    bonjour ,
    j'ai vraiment besoin d'aide , ca m'énerve un peu je passe mes journées a savoir comment faire !
    donc voila déja le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
          $input = array('A','B','C','D','E','F','G');
          $input['new'] = $new ;
          $rand_keys = array_rand($input, 3);
          $rand_keys[] = 'new';
          $result = array_unique($rand_keys);
          shuffle($result);
             foreach($result as $key){
                      echo '<label for="radio'.$key.'">'.$input[$key] .'</label><input type="radio" name="brain" value="'.$key.'" /><br />';
          }
          ?>
    donc pour info , $new est forcement une lettre de A a G , et je veut que mon groupe radio ne m'affiche pas 2boutons ayant la même lettre (probabilité de 1/5 que ca se produise) , je veut qu'il affiche forcement $new mais pas l'autre , svp dite moi la fonction correspondante ou donnez moi le code correspondant , je suis débutant en php et donc je connais pas toute les fonctions ...

    ps : le array_unique que j'ai mis ne sert a rien puisqu'il ne fait pas ce que je voulais

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 219
    Points
    8 219
    Billets dans le blog
    17
    Par défaut
    je veut que mon groupe radio ne m'affiche pas 2boutons ayant la même lettre (probabilité de 1/5 que ca se produise) , je veut qu'il affiche forcement $new mais pas l'autre
    Pas compris, donne quelques exemples du résultat souhaité.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bin , en temps normal :
    j'ai :
    -A
    -C
    -G
    -D

    Et a de rares moments mais presents tout de meme ,
    j'ai :
    -B
    -C
    -F
    -C
    et donc il y a un C en trop , je souhaite qu'un C disparaisse , mais pas celui correspondant a ma variable $new mais au C present dans le array , tu comprends ?

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 219
    Points
    8 219
    Billets dans le blog
    17
    Par défaut
    Ce que je comprends : tu as un tableau de 7 valeurs et tu veux en afficher 4 aléatoirement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $data = array('A', 'B', 'C', 'D', 'E', 'F', 'G') ;
    $rand = array_rand($data, 4) ;
    foreach ( $rand as $value ) {
        echo $value ;
    }
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Non , $new est different des valeurs de $data , justement je souhaite garder ce que $new m'affichera mais pas ce que la meme valeur provenant de $data m'affichera qui seront les memes lettre dans mon groupe radio mais pas dans programme , tu as compris ?
    peut-etre le bout de code plus haut peut t'aider a mieux comprendre ?

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 219
    Points
    8 219
    Billets dans le blog
    17
    Par défaut
    Pas compris.

    Donne un exemple d'affichage et du contenu des variables.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Voila comme ci-dessus , mon affichage etant de maniere aléatoire en tant normale , j'ai :
    -A
    -G ($new par exemple)
    -B
    -C
    ou :
    -C($new par exemple)
    -F
    -B
    -E
    seulement des fois , j'ai :
    -C(celui dans le array (pour ton code il provient de $data et non $new)
    -B
    -C($new)
    -A
    et je veut supprimer le 1er C et ne garder que le 3eme C(et les 2 autres valeurs) , seulement si je reactualise , $new n'est plus C

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 219
    Points
    8 219
    Billets dans le blog
    17
    Par défaut
    Stp, donne le contenu des variables et ce que tu veux obtenir à l'écran.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    quelque chose comme ça non ?
    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
    $input = array('A','B','C','D','E','F','G');
    // on cherche la clé correspondant à $new
    $new = 'C';
    $k   = array_search($new, $input);
    if ($k !== false)
    {
        // on retire la clé trouvée
        unset($input[$k]);
    }
    // on ajoute la valeur $new
    $input[] = $new ;
    $rand_keys = array_rand($input, 3);
    shuffle($result);
     
    foreach ($result as $key)
    {
        echo '<label for="radio'.$key.'">'.$input[$key] .'</label><input type="radio" name="brain" value="'.$key.'" /><br />';
    }

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    voici le code correspondant a $new :
    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
     
     <?php
    // Ouvre un dossier bien connu, et liste tous les fichiers
    $directory = 'PHPTEST';
    // Définition d'$image comme tableau
    $image = array();
    //on vérifie s’il s’agit bien d’un répertoire
    if (is_dir($directory))
    {
    //on ouvre le repertoire
    if ($dh = opendir($directory))
    {
    //Lit une entrée du dossier et readdir retourne le nom du fichier
    while (($file = readdir($dh)) !== false)
    {
    // Vérifie de ne pas prendre en compte les dossier ...
    if ($file != '...' && $file != '..' && $file != '.')
    {
    // On ajoute le nom du fichier dans le tableau
    $image[] = $file;
    }
    }
    //On ferme le repertoire
    closedir($dh);
    // On récupère le nombre d'image total
    $total = count($image)-1;
    // On prend une valeur au hasard entre 1 et le nombre total d'images
    $aleatoire = rand(0, $total);
    // On récupère le nom de l'image avec le chiffre hasard
    $image_afficher = "$image[$aleatoire]";
    // Affiche l'image du hasard :p
    print "<img src='$directory/$image_afficher'>";
    }
    }
    ?>
    <?php
    // Je met le nom de mon fichier dans une variable
    $file_name = "$image_afficher";
    // J'explose dans un tableau à chaque fois que je rencontre un point
    $file_array = explode ('.',$file_name);
    // Je récupère l'indice dans le tableau de l'extension "jpg", soit le dernier élément
    $extension = count ($file_array) - 1;
    // Je découpe en enlevant l'extension cad (la taille de "jpg" + la taille du point d'où le -1)
    $new = substr ($file_name,0,strlen($file_name) -strlen ($file_array[$extension])-1);
    ?>
    chaque image porte un nom dans la liste tel que :


    Le programme en temps normal :


    Le programme en temps anormal :




    Je veut obtenir le temps normal tout le temps , je ne veut jamais etre dans le cas anormal , sauf que si j'utilise un array_unique , il me supprime bien les doublons mais a ce moment je perd tout l'interet du programme car je perd ma clef




    Edit : oui le code ressemble a ça , je me disais bien que array_search me serait utile , mais $new n'est pas tout le temps egal a 'C' !!

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    @rawsrc

    mon sauveur , si je retire la 2eme ligne de code , ca marche sans problème , je me sens libéré d'un gros poid tout a coup
    merci beaucoup de votre aide

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

Discussions similaires

  1. variable dans tableau
    Par vince2005 dans le forum Langage
    Réponses: 6
    Dernier message: 02/12/2012, 12h30
  2. variable dans tableau et en gras
    Par dege44 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2012, 16h20
  3. Variable dans tableau croisé
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/10/2008, 11h21
  4. Réponses: 3
    Dernier message: 22/03/2007, 13h09
  5. Réponses: 9
    Dernier message: 12/05/2006, 09h06

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