Visualizzazione risultati 1 fino 10 di 10

Discussione: [PHP] Estrazione dei numeri a random

  1. #1
    Guest

    Post [PHP] Estrazione dei numeri a random

    Ciao a tutti, sto cercando di creare una lista che comprende 90 numeri (da 1 a 90) dove sono presenti tutti solo in ordine casuale (grazie a rand()...).
    Sono riuscito a ricavarne 90 con un for solo che non so' più dove mettere mano adesso é.è
    Codice PHP:
    <?

    $num
    = 1;

    for(
    $num>1;$num<91;$num++) {
    # if($num<10) { $num = "0".$num; }
    echo "<span>{$num}</span>";
    }

    ?>
    In pratica, dovrebbe essere stampata la lista come succede ordinatamente con il for solo casuale. Grazie mille!! Ciaoooo...

  2. #2
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    range() + shuffle() ?

    Ciao!

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    [OT]

    ...niente da ridire su quanto detto da programmazioned, ma credo che hai "errato" (anche se funziona ugualmente):

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Codice PHP:
    $num = 1;

    for(
    $num>1;$num<91;$num++) {
    nell'inizializzazione del for, perché hai messo $num>1 ?

    non è:
    Codice PHP:
    for(;$num<91;$num++) {
    ?

    oppure l'inizializzazione la metti dentro!...sbaglio?

    [/OT]
    Ultima modifica di alemoppo : 29-12-2009 alle ore 01.38.27

  4. #4
    Guest

    Predefinito

    @programmazioned:Mattia, ci sono riuscito solo che ora come divido i risultati nei <tr>?
    Vorrei creare un <tr> ogni 10 numeri se è possibile...
    Codice PHP:
    $rand = range(1,90);
    shuffle($rand);
    foreach(
    $rand as $nums) {
    echo
    "<td>{$nums}</td>";
    }
    @alemoppo: Lo zero non si deve contare, perché se faccio come dici tu mi compare uno <span> vuoto! ^^"

    Grazie mille a tutti!....

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    @alemoppo: Lo zero non si deve contare, perché se faccio come dici tu mi compare uno <span> vuoto! ^^".
    ...ma scusa, non inizializzi sopra $num = 1 ??

    EDIT:
    potresti risolvere il problema con 2 for concatenati (per il tr)
    Ultima modifica di alemoppo : 29-12-2009 alle ore 01.55.51

  6. #6
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    da quando si inizializza un for con un > ??? ahah
    Codice PHP:
    for($num = 1; $num<=90; $num++){
    era tanto difficile farlo così? xDDD

    se vuoi un <tr> ogni 10, usando foreach t'attacchi al tram!
    Codice PHP:
    for($i=0; $i<count($rand); $i++){
    if(
    $i%10==0)
    echo
    "<tr>";
    echo
    "<td>{$rand[$i]}</td>";
    if((
    $i+1)%10==0)
    echo
    "</tr>";
    }
    Ultima modifica di ageofempiresgif : 29-12-2009 alle ore 01.58.22
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  7. #7
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Codice PHP:
    if($chiave % 10 == 0)
    echo
    '<tr>';
    ...
    Ciao!

    P.S: Mi chiamo Matteo :)

    EDIT: ageofempiresgif scorretto, l'ora dell'edit dice tutto
    Ultima modifica di programmazioned : 29-12-2009 alle ore 02.04.42

  8. #8
    Guest

    Predefinito

    ageofempiresgif, anche con foreach ci sono delle alternative valide. Puoi usare l'indice dell'array aumentandolo di 1 oppure puoi sempre creare un contatore a parte.

  9. #9
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    mi correggo, con foreach si può fare xD
    Codice PHP:
    foreach($rand as $key=>$nums) {
    if(
    $key%10==0)
    echo
    "<tr>";
    echo
    "<td>{$nums}</td>";
    if((
    $key+1)%10==0)
    echo
    "</tr>";
    }
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  10. #10
    Guest

    Predefinito

    Ma se ti fa schifo usare l'indice dell'array puoi anche fare così:
    Codice PHP:
    <?php
    $count
    = 0;
    foreach(
    $rand as $nums)
    {
    if(
    $count % 10 == 0)
    echo
    '<tr>';

    echo
    "<td>{$nums}</td>";

    if((
    $count + 1) % 10 == 0)
    echo
    "</tr>";

    $count++;
    }
    ?>

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •