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

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : janvier 2005
    Messages : 531
    Points : 77
    Points
    77

    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
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : janvier 2005
    Messages : 531
    Points : 77
    Points
    77

    Par défaut

    Bon ben, j'ai fait autrement en travaillant sur des tableaux et ça fonctionne

  3. #3
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    6 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 6 415
    Points : 12 362
    Points
    12 362

    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;
    ?>
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

+ 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, 17h55
  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, 16h26
  3. [langage] random sur liste ou tableau
    Par martijan dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2003, 14h47
  4. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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