Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Probelma con ciclo For!

    ciao a tutti
    vorrei realizzare un piccolo codice (sfruttando il ciclo FOR ) dove vado a leggere in un array dei valori e li vorrei stampare ad intervalli sullo schermo.
    faccio un esempio..
    Ho una array dove memorizzo 3 parole
    leggo il contenuto dell'array e ogni 5 secondi faccio apparire sullo schermo una parola (queste saranno sequenziali).
    il codice che ho realizzato è il seguente ma il problema è che mi stampa (5, il valore che ho deciso io) volte ogni singola parola!

    e ancora, la funzione goto non dovrebbe farmi tornare al punto indicato dalla (Label) e ricominciare il ciclo all'infinito?

    mi potete aiutare?

    grazie a tutti



    Codice PHP:
    $saluto = array('buongiorno','buonasera','buonanotte','ciao','come va');
    a:
     
    $conta count($saluto);

     for(
    $i=0;$i<$conta;$i++)
     for(
    $t=0;$t<5;$t++){
    echo 
    " ";
     echo
    "$saluto[$i] 
    "
    ;
     echo 
    "$t";

    echo 
    '


    if ($t==5){ goto a;
     }


    }
    ?> 

  2. #2

    Re: Probelma con ciclo For!

    Originariamente inviato da robotsitepc
    e ancora, la funzione goto non dovrebbe farmi tornare al punto indicato dalla (Label) e ricominciare il ciclo all'infinito?
    La funzione GOTO() è disponibile dalla versione 5.3 di PHP, per cui se non hai questa versione del linguaggio, non potrai usarla.

    Per ciclare un array, ti consigli di usare FOREACH().
    Non vedo poi in quale punto dello script fai attendere 5 secondi tra un echo e l'altro.

    Per ciclare poi l'intero script, al posto di usare goto, puoi creare una funzione ricorsiva o un ciclo di for.

    Codice PHP:
    $array_saluti = array(
    'buongiorno',
    'buonasera',
    'buonanotte',
    'ciao',
    'come va'
    );

    function 
    stampaSaluto($arr) {
      foreach (
    $arr AS $saluto) {
         echo 
    "
    $saluto";
         
    sleep (5); // mette in pausa lo script per 5 secondi
      
    }
    }

    for (
    $i 1$i <= 10$i++) {
       
    // ripete la funzione per 10 cicli
       
    stampaSaluto($array_saluti);

    Spero di essermi spiegato.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    ciao Grazie per l'aiuto!
    sto provando ma non mi appare nulla (pagina bianca)

    non riesco a vedere l'errore!


  4. #4
    comunque per fare apparire le parole sullo schermo ogni 5 secondi devi usare Javascript...

    sleep() di php blocca solo l'esecuzione dello script, le parole poi compariranno tutte assieme quando lo script è terminato...

  5. #5
    Indubbiamente con JS l'effetto è migliore.
    Ho solo voluto dare la risposta completamente in PHP!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.