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. :ccool: