Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Problema ciclo for

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44

    Problema ciclo for

    Ciao a tutti!
    Ho questo codice:
    Codice PHP:
    $acognome = array();
    $vocali = array('a','e','i','o','u');
    $contacognome count($acognome); 
            
    for(
    $i 0$i strlen($cognome); $i++) {      
    if(!
    in_array($cognome[$i], $vocali)) {     
    $acognome[] = $cognome[$i];       
     if(
    $contacognome 3) {            
     
    $i strlen($cognome) + 1;         
    }    


    Sostanzialmente con questo ciclo esamino un cognome che viene digitato in un input e salvo le sue consonanti all'interno dell'array "acognome".
    Dopo che ho ottenuto 3 consonanti forzo l'uscita dal ciclo.

    Il problema è che mi salva una sola consonante nell'array e non capisco come mai...
    Avete qualche suggerimento?
    Ultima modifica di Zurigo96; 08-10-2014 a 22:19

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Prova correggendo così
    Codice PHP:
    $acognome[] = $cognome[$i];       
     if(
    count($acognome) == 3) {            
     break;


  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    In pratica vuoi generare le 3 lettere per il codice fiscale, giusto?

    Un ciclo for si stoppa in generale con break; (ma anche i foreach e while) non modificando il contatore per far risultare falsa la condizione del ciclo.

    il confronto
    if($contacognome = 3)
    si fa con == non con =

    inoltre $contacognome sarà sempre pari al count($acognome) iniziale perché viene eseguito solo una volta stando fuori dal ciclo e non essendo aggiornato.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44
    Grazie mille!
    Che stupido, al posto di "==" avevo messo "="

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Ma mica basta cambiare = con ==...
    Guarda bene quanto scritto da Alhazred e il mio codice

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44
    Quando ho pubblicato la risposta, quella di Alhazred non era ancora stata inviata...
    Comunque ho messo fuori il count perché se lo lasciavo dentro l'if mi dava errore!

    Non sapevo del break, cercando in rete ho trovato solo il metodo forzato, grazie..provvedo a sostituire!

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Certo che il count dentro il ciclo ti dava errore, non puoi assegnare un valore ad una funzione, prima ti dava errore a causa del =

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44
    Io ho cercato in rete e ho trovato che il primo carattere dopo l'if dev'essere $: if($...) è vero? Difatti dopo che ho sostituito non mi dava più errore...
    E comunque il count mi serve lì dov'è perché lo riutilizzo anche in diversi cicli successivi, quindi evito di riscrivere il tutto ogni volta

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    La y non è una vocale ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Quote Originariamente inviata da Zurigo96 Visualizza il messaggio
    Io ho cercato in rete e ho trovato che il primo carattere dopo l'if dev'essere $: if($...) è vero? Difatti dopo che ho sostituito non mi dava più errore...
    E comunque il count mi serve lì dov'è perché lo riutilizzo anche in diversi cicli successivi, quindi evito di riscrivere il tutto ogni volta
    Hai le idee un po' confuse su come funziona PHP.
    Non è vero che il primo carattere dopo l'if deve essere un $ (che equivale a dire che la prima cosa dentro l'if deve essere una variabile), puoi benissimo avere

    if ( funizione() == $valore )

    oppure solo

    if ( funzione() )

    se funzione() restituisce true o false.

    Il count() potrà anche servirti dove l'hai messo, ma se questo non ti fa funzionare un pezzo di codice devi rivedere le cose, comunque come suggerito da clasku dovrebbe funzionare.

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.