Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104

    caricare Array in modo Random

    Spero di essermi spiegato bene nel titolo, ho un script che mi tira fuori in modo del tutto casuale dei numeri ora vorrei abbinare a questa serie di numeri il nome di una città (ebbene si sono numeri del lotto

    lo scriptino è questo

    $rnd1 = 0;
    $rnd2 = 0;
    $rnd3 = 0;
    $rnd4 = 0;
    $rnd5 = 0;

    function genrnd() {
    global $rnd1;
    $rnd1 = rand(1, 18);
    global $rnd2;
    $rnd2 = rand(18, 36);
    global $rnd3;
    $rnd3 = rand(36, 54);
    global $rnd4;
    $rnd4 = rand(54, 72);
    global $rnd5;
    $rnd5 = rand(72, 90);
    return $rnd1;
    return $rnd2;
    return $rnd3;
    return $rnd4;
    return $rnd5;
    }

    genrnd();

    if(($rnd1 == $rnd2) && ($rnd1 == $rnd3) && ($rnd1 == $rnd4) && ($rnd1 == $rnd5) && ($rnd2 == $rnd3) && ($rnd2 == $rnd4) && ($rnd2 == $rnd5) && ($rnd3 == $rnd4) && ($rnd3 == $rnd5) && ($rnd4 == $rnd5)){
    genrnd();
    }

    Uso gli array?? se si come li lego ai numeri??

    srand ((float) microtime () * 10000000);

    $città = array ("Bari","Cagliari","Firenze","Genova","Milano","Na poli","Palermo","Roma","Torino","Venezia");

    $chiavi = array_rand ($città, 1 );

    print $città[$chiavi[0]]."
    ";

  2. #2
    1) Ma ogni numero non può essere da 1 a 90?
    2) Il return deve essere uno solo! Al primo infatt la funzione si ferma
    3) Il controllo lo devi fare all'interno della funzione non all'esterno con l'if

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    ciao mircov,

    grazie per l'interessamento, si i numeri devono esse da 1 a 90, quella era una prova particolare.

    Per il resto anche se è come dici tu.... lo scriptino mi funge lo stesso e non mi dà errori, proverò cmq a sistemarlo come mi hai consigliato

    Allora ho tolto gli altri return, ma ora non capisco come devo far fare il controllo dentro e non fuori con l'if cosi come da te consigliato.

    mi dai imbeccata

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    nessun aiuto?

  5. #5
    Il procedimento è questo:

    1) Generi i numeri
    2) fai il controllo con gli if
    3) Se ci sono numeri uguali: richiami la funzione
    4) Se non ci sono numeri uguali return $nums

    Codice PHP:
    function genrnd()
            {
                for (
    $i=$i <= $i++)
                   {
                       
    $num[] = rand(1,90);
                   }
                 if ((
    $num[0] == $num[1]) || 
                     (
    $num[0] == $num[2]) || 
                     (
    $num[0] == $num[3]) ||
                     (
    $num[0] == $num[4]) || 
                     (
    $num[1] == $num[2]) || 
                     (
    $num[1] == $num[3]) ||
                     (
    $num[1] == $num[4]) ||
                     (
    $num[2] == $num[3]) ||
                     (
    $num[2] == $num[4]) ||
                     (
    $num[3] == $num[4]))
                   {
                      
    genrnd();
                   }
                 else
                   {
                      return 
    $num;
                   }
            }
    $var genrnd();
    var_export($var); 
    Adesso funziona. Ecco cosa intendevo per controllo all'interno della funzione.
    Ciao!

  6. #6
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Oppure così:

    Codice PHP:
    Function getrnd() {
        
    $nums = array();
        
    $i 1;
        while (
    $i 5) {
              
    $num rand(1,90);
              if (!
    in_array($num$nums)) {
                  
    $nums[] = $num;
                  
    $i++;
              }
         }
         return 
    $nums;
    }

    $var getrnd(); 

  7. #7
    Ecco, utilizza il metodo postato da RockStar. Avevo tentato di fare una cosa del genere ma non conosco molto bene gli array e quindi non ci sono riuscito. Cmq il secondo metodo dovrebbe essere più veloce. Ciao!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.