Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2012, 15h03   #1
Caxton
Membre du Club
 
Avatar de Caxton
 
Homme Alexandre
Infographiste
Inscription : janvier 2005
Messages : 390
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 35
Localisation : France, Corrèze (Limousin)

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

Informations forums :
Inscription : janvier 2005
Messages : 390
Points : 67
Points : 67
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.
__________________
Mon site
Caxton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h17   #2
Caxton
Membre du Club
 
Avatar de Caxton
 
Homme Alexandre
Infographiste
Inscription : janvier 2005
Messages : 390
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 35
Localisation : France, Corrèze (Limousin)

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

Informations forums :
Inscription : janvier 2005
Messages : 390
Points : 67
Points : 67
Bon ben, j'ai fait autrement en travaillant sur des tableaux et ça fonctionne
__________________
Mon site
Caxton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h23   #3
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

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

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 538
Points : 7 538
Envoyer un message via Skype™ à jreaux62
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;
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h59.


 
 
 
 
Partenaires

Hébergement Web