Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9

    aiuto su funzione array_unique()

    salve, non riesco a eliminare i valori doppi nelle singole città ecco il codice:

    <?php
    $citta = array("Bari", "Cagliari", "Firenze", "Genova", "Milano", "Napoli", "Palermo", "Roma", "Torino", "Venezia", "Nazionale");
    $ruota = array(0, 0, 0, 0, 0);

    echo ("<table border=\"1\">");

    for ($i=0; $i<count($citta); $i++){
    echo("<tr>");
    echo("<td> $citta[$i] </td>");

    for ($j=0; $j<count($ruota); $j++){
    $controllo = 0;
    while($controllo < 5){

    $estratto1 = mt_rand(1,90);
    $estratto2 = mt_rand(1,90);
    $estratto3 = mt_rand(1,90);
    $estratto4 = mt_rand(1,90);
    $estratto5 = mt_rand(1,90);

    $ruota = array($estratto1,$estratto2,$estratto3,$estratto4, $estratto5);

    $controllo = count(array_unique($ruota));

    }


    echo("<td>".$ruota[$j]."</td>");
    }
    }
    echo("</table>");
    ?>

    Non capisco come mai continua a numeri uguali nelle singole citta.

    grazie

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Secondo me dipende dal fatto che fai sia un ciclo su da 0 a count($ruota), sia crei 5 estrazioni ad ogni passo di quel ciclo

    es:
    $J = 0
    fai il while finche non hai un array con valori unici:
    $ruota = 1 5 7 23 56
    Stampi $ruota[$j=0] => 1

    $j = 1
    fai il while finche non hai un array con valori unici:
    $ruota = 3 1 6 35 89 // nota l' 1
    Stampi $ruota[$j=1] => 1 // array $ruota è unico, ma l'1 si ripete perchè in posizione $j=1

    etc...

    Secondo me ti basta eliminare quel for ($j=0; $j<count($ruota); $j++){ e lasciare il while.
    Poi puoi stampare tutto l'array $ruota nella riga della tabella

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9
    Originariamente inviato da boots
    Secondo me ti basta eliminare quel for ($j=0; $j<count($ruota); $j++){ e lasciare il while.
    Poi puoi stampare tutto l'array $ruota nella riga della tabella
    si hai ragione.

    scusa come faccio a mettere l'array nella riga della tabella?

    Purtroppo con PHP ho appena iniziato e ci sto capendo poco.

    grazie

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    quello che volevo dire è che dopo il while hai già i 5 valori unici per la ruota, quindi ti basta fare un foreach e stampi i 5 numeri

    Codice PHP:
    <?php
    $citta 
    = array("Bari""Cagliari""Firenze""Genova""Milano""Napoli""Palermo""Roma""Torino""Venezia""Nazionale");
    $ruota = array(00000);

    echo (
    "<table border=\"1\">");

    for (
    $i=0$i<count($citta); $i++){
        echo(
    "<tr>");
        echo(
    "<td> $citta[$i] </td>");

        
    $controllo 0;
        
    // Estraggo 5 numeri random e unici
        
    while($controllo 5){

           
    $estratto1 mt_rand(1,90);
           
    $estratto2 mt_rand(1,90);
           
    $estratto3 mt_rand(1,90);
           
    $estratto4 mt_rand(1,90);
           
    $estratto5 mt_rand(1,90);

           
    $ruota = array($estratto1,$estratto2,$estratto3,$estratto4,$estratto5);

           
    $controllo count(array_unique($ruota));
      
        }
        
    // Stampo i numeri estratti
        
    foreach($ruota as $estratto){
           echo(
    "<td>".$estratto."</td>");
        }
       
    // oppure, puoi anche scrivere a posto del foreach
       // echo '<td>'.implode('</td><td>', $ruota).'</td>';
    }
    echo(
    "</table>");
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9
    Grazie mille

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.