Salve a tutti. Sono nuovo su questo forum.
Vorre innanzitutto ringraziarel'inteer community html.it perchè fin da quano avevo 12 anni, leggendo questo portale, ho appreso le basi della programmazione in html, dhtml, javascript e fnalmente PHP.

Vorrei dirvi che siete fantastici e di continuare così!!!

Ora, dopo i dovuti complimenti, vorrei porvi un quesito.

Da tempo, per sfizio personale, mi sono detto che volev vedere quanto tempo impiegasse il mo pc a compiere miliardi di operazioni, per valutarne l'efficienza. Tra le tantissime cose che mi sarebbero potute venire in mente, ho scelto quella di creare un semplice algoritmo in PHP che mi permettesse di stampare a video tutte le possibili combinazioni di caratteri ascii fino ad una lunghezza n (n=2 => aa, ab, ac, ....; n=3 => aaa, aab, aac...).

Per farlo la prima idea che mi è venuta è stata quella di inserire un for dentro l'altro, in questa maniera:

Codice PHP:
//Parto da 32 perchè i caratteri ascii precendenti non li vorrei considerare (faccine e robe varie blah!)

for ($i=32$i<127$i++) {

     for (
$i2=32$i2<127$i2++) {

         
//.... qua si possono inserire quanti for tante sono le lettere delle stringa finale, ovvero n.

          
for ($i3=32$i3<127$i3++) {

          print(
chr($i).chr($i2).chr($i3). ... );
          }

     }


Ora sembra banale, ma mi aspettavo che funzionasse. In effetti la mia scelta non è stata intiutiva, ma mi sono basato sul fatto che per n=3, le combinazioni possibili sono x^n; quindi n*n*n. Il for dovrebbe fare questo appunto, ma non accade.

Finchè inserisco un for dentro un altro, operando con soli due cicli "concentrici", il tutto funziona. Se aggiungo il terzo, accade qualcosadi strano, posto l'output.

OUTPUT

Praticamente potete vedere che l'esempio è di tipo n=3 (aaa).
Accade che la prima lettera si combina con la seconda fino a che non arriva al carattere ";". Poi scala subito a quella successiva.

Dato che sono sicuro che l'errore sia nella mia logica piuttasto che nel webserver apache, vi chiedo cortesemente di illuminare la mia ignoranza.

Penso che in particolare il mio errore possa risiedere nel fatto che debba riazzerare qualche ciclo. Comuqnue fin ora non ci sono riuscito, e vi chido pertanto di aiutarmi.


Grazie ancora!