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

    Numeri casuali senza doppioni

    Ciao a tutti,
    il mio problema è semplice da spiegare ma difficile da risolvere:
    conoscete una funzione che genera numeri random senza doppioni?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    che io sappia senza doppioni no, devi farti un ciclo di confronto

    $val=rand(0,1000);

    genera un numero casuale tra 0 e 1000
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Sì, la funzione rand la conosco.
    Come posso impostare il ciclo di confronto?

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    $array=array(1,2,3,8,9);
    $numero=check(5,$array);

    function 
    check($numero,$array)
    {
    foreach (
    $array as $val)
    {
    if (
    $val==$numero
    {
    $numero=rand(0,10);
    check ($numero,$array);
    }
    }
    return 
    $numero;

    dovrebbe funzionare...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ti conviene inserire tutti i numeri estraibili in un array, usare la funzione shuffle per mischiarli e poi ciclare il contenuto dell'array. In questo modo sei sicuro di non avere doppioni ed è più rapida come soluzione.

  6. #6
    Grazie per il vostro interesse.
    Riguardo alla funzione shuffle(), devo procedere in questo modo? :

    $array_dati=array('c','a','b','d','g','e','f');
    shuffle($array_dati);

    echo "
    Primo elemento: $array_dati[0]

    Secondo elemento: $array_dati[1]";


    In questo modo sono sicuro che il primo elemento sia sempre diverso dal secondo, giusto?


  7. #7
    si potrebbe fare anche con la funzione uniqid() penso

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.