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 :

Random sur plusieurs lettres


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Points : 123
    Points
    123
    Par défaut Random sur plusieurs lettres
    Bonjour,

    Je bloque depuis un moment la dessus.

    Je possède une classe, avec plusieurs tableaux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private $tConsonnes = array("B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Z");
    private $tVoyelles = array("A", "E", "I", "O", "U", "Y");
    private $tCoda = array("C", "V");
    Je génère un Coda qui composera donc des syllabes. Oui, je sait que c'est barbare comme système !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $selNbLongueur = $_REQUEST['sel_nb_longueur'];
     
    $coda = '';
     
    //Générer le coda
    for($i = 1; $i <= $selNbLongueur; $i++) {
     
    	//Retourne un nombre aléatoire ne dépassant pas les capacité du tableau
    	$random = array_rand($this->tCoda);
     
    	//Génère la chaine Coda
    	$coda .= $this->tCoda[$random];
    }
    Cette partie là fonctionne très bien. J'obtiens donc une chaine composé de "C" et de "V". Seulement voila, je tente maintenant de remplacer toutes les voyelles "V" par un aléatoire du tableau de voyelles et ensuite toutes les consonnes "C" avec un aléatoire du tableau de consonnes.

    Mes essais ont portés sur str_replace. Hélas, je ne remplace toutes mes lettres par la même lettre à chaque fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $resultat = '';
     
    //Retourne un nombre aléatoire ne dépassant pas les capacité du tableau
    $random = array_rand($this->tVoyelles);
    //Pour chaque V, remplacer par une lettre aléaoire du tableau correspondant
    $resultat = str_replace("V", $this->tVoyelles[$random], $coda);
     
    //Retourne un nombre aléatoire ne dépassant pas les capacité du tableau
    $random = array_rand($this->tConsonnes);
    //Pour chaque C, remplacer par une lettre aléaoire du tableau correspondant
    $resultat = str_replace("C", $this->tConsonnes[$random], $resultat);
    C'est donc là dessus que j'aimerais trouver une solution équivalente mais plus efficace

    Merci pour votre aide.

  2. #2
    Membre régulier Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Points : 123
    Points
    123
    Par défaut
    Bon ben, j'ai fait autrement en travaillant sur des tableaux et ça fonctionne

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $tLettres[0] = array("B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Z");
    $tLettres[1] = array("A", "E", "I", "O", "U", "Y");
     
    //$selNbLongueur = $_REQUEST['sel_nb_longueur'];
    $selNbLongueur = 10; // TEST !
     
    $coda = '';
    for($i = 0; $i < $selNbLongueur; $i++) {
     	// $i%2 = 0 ou 1 (on alterne consonnes et voyelles)
    	$coda .= $tLettres[$i%2][array_rand($tLettres[$i%2], 1)];
    }
    echo $coda;
    ?>

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

Discussions similaires

  1. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 18h55
  2. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 17h26
  3. [langage] random sur liste ou tableau
    Par martijan dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2003, 15h47
  4. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 12h23
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 21h20

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