Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre du Club Avatar de Caxton
    Homme Profil pro Alexandre
    Infographiste
    Inscrit en
    janvier 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre
    Âge : 37
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : janvier 2005
    Messages : 479
    Points : 69
    Points
    69

    Par défaut Random sur plusieurs lettres

    Bonjour,

    Je bloque depuis un moment la dessus.

    Je possède une classe, avec plusieurs tableaux.
    Code :
    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 :
    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 :
    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 du Club Avatar de Caxton
    Homme Profil pro Alexandre
    Infographiste
    Inscrit en
    janvier 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre
    Âge : 37
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : janvier 2005
    Messages : 479
    Points : 69
    Points
    69

    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 Jérôme Réaux
    Webdesigner
    Inscrit en
    août 2008
    Messages
    5 365
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Réaux
    Âge : 47
    Localisation : Nouvelle-Calédonie

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

    Informations forums :
    Inscription : août 2008
    Messages : 5 365
    Points : 9 127
    Points
    9 127

    Par défaut

    Bonjour,
    Code :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •