Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 16h20   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 26
Points : 11
Points : 11
Par défaut Liste de 'a' à 'zzz'

Bonjour! Je cherche à faire une boucle qui m'afficherais une liste des lettres de 'a' à 'zzz'.

Voilà ce que j'ai fait :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
for($c = 0; $c <= 3; $c++)
{
	for($b = 0; $b <= 3; $b++)
	{
		for($a = 1; $a <= 3; $a++)
		{
			if ($a!=0)
			{
				$test = chr($a + 96);
			}
 
			if ($b!=0)
			{
				$test .= chr($b + 96);
			}
 
			if ($c!=0)
			{
				$test .= chr($c + 96);
			}
		echo $test . '<br>';
 
		}
	}
}
Cependant j'obtiens un bon gros paquet de doublons. J'ai donc tester autre chose :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
for ($i=1; $i<=3; $i++)
{
	for($c = 1; $c <= 3; $c++)
	{
		for($b = 1; $b <= 3; $b++)
		{
			for($a = 1; $a <= 3; $a++)
			{
				if ($i>=1)
				{
					$test = chr($a+96);
				}
 
				if ($i>=2)
				{				
					$test .= chr($b+96);
				}
 
				if ($i>=3)
				{
					$test .= chr($c+96);
				}
 
				echo $test . '<br>';
 
			}
		}
	}
}
Et là le résultat est un peu mieu mais je n'arrive pas à faire tourner la boucle une seule fois si je n'ai qu'un caractère à afficher, deux fois si j'ai deux caractères, etc.
Erwaan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h33   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
euh ....

Code :
1
2
3
for($l = 'a'; $l !== 'aaaa'; $l++) {
    echo $l, "\n";
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 02h50   #3
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
wow, on peut incrémenter les string o_o

décidément même quand on crois avoir tout vu.. on continu d'en apprendre...
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 05h29   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Seb33300 Voir le message
wow, on peut incrémenter les string o_o

décidément même quand on crois avoir tout vu.. on continu d'en apprendre...
yep avec PHP tout les jours on en apprend
http://php.net/manual/fr/language.op...hp#example-122

Citation:
Envoyé par php.net
PHP suit les conventions de Perl pour la gestion des opérateurs arithmétiques sur les variables de caractères et non pas celle du C. Par exemple, en PHP et en Perl, $a = 'Z'; $a++; transforme $a en 'AA', alors qu'en C, a = 'Z'; a++; transforme a en '[' (la valeur ASCII de 'Z' est 90, la valeur ASCII de '[' est 91). Notez que les variables de caractères peuvent être incrémentées mais pas décrémentées, mais aussi que seuls les caractères ASCII pleins (a-z et A-Z) sont supportés. L'incrémentation/décrémentation d'autres variables de caractères n'a aucun effet, la chaîne originale n'est pas modifiée.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/11/2011, 21h45   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 26
Points : 11
Points : 11
Citation:
Envoyé par Seb33300 Voir le message
wow, on peut incrémenter les string o_o

décidément même quand on crois avoir tout vu.. on continu d'en apprendre...
+1 J'ai appris une bonne chose là Merci beaucoup à toi.
Erwaan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 09h46   #6
Membre du Club
 
Homme Boris
conception et traitement de documents xhtml
Inscription : août 2011
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : conception et traitement de documents xhtml
Secteur : Conseil

Informations forums :
Inscription : août 2011
Messages : 107
Points : 59
Points : 59
Bonjour,

Il est vrai que PHP permet des structures de boucles riches.

Par exemple, la boucle for ci-dessous permet de parcourir les noeuds enfants contenus dans une balise <body> :
Code :
for($node = $file_xhtml	-> getElementsByTagName('body') -> item(0) -> firstChild ; $node !== null ; $node = $node -> nextSibling)
On est loin de l'exemple classique de boucle for
Code :
for($i = 1 ; $i < $n ; $i++)
Doc_xhtml est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 10h54   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Doc_xhtml Voir le message
Bonjour,

Il est vrai que PHP permet des structures de boucles riches.

Par exemple, la boucle for ci-dessous permet de parcourir les noeuds enfants contenus dans une balise <body> :
Code :
for($node = $file_xhtml	-> getElementsByTagName('body') -> item(0) -> firstChild ; $node !== null ; $node = $node -> nextSibling)
On est loin de l'exemple classique de boucle for
Code :
for($i = 1 ; $i < $n ; $i++)
tu peux direct faire

Code :
1
2
$nodes = $file_xhtml->getElementsByTagName('body')
foreach($nodes->childNodes as $node)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 11h49   #8
Membre du Club
 
Homme Boris
conception et traitement de documents xhtml
Inscription : août 2011
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : conception et traitement de documents xhtml
Secteur : Conseil

Informations forums :
Inscription : août 2011
Messages : 107
Points : 59
Points : 59
Effectivement !
Je simplifierai mon code en conséquence.

Mais je voulais illustrer la puissance de la boucle for
Doc_xhtml est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 12h04   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par Doc_xhtml
Mais je voulais illustrer la puissance de la boucle for
Ben à vrai dire, l'exemple que tu donnes est malgré tout assez "classique" dans le respect de la syntaxe
Code :
for(initialisation; condition de sortie; expression à évaluer à chaque itération){...}
PHP: for - Manual
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h00   #10
Membre du Club
 
Homme Boris
conception et traitement de documents xhtml
Inscription : août 2011
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : conception et traitement de documents xhtml
Secteur : Conseil

Informations forums :
Inscription : août 2011
Messages : 107
Points : 59
Points : 59
Bonjour Bovino,

Est-ce que tu as des exemples de boucle for moins "classiques" ? (Par définition, semble-t-il, toute boucle for est construite selon la structure que tu indiques.)
Doc_xhtml est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h37.


 
 
 
 
Partenaires

Hébergement Web