Visualizzazione dei risultati da 1 a 8 su 8

Discussione: controllo numeri

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139

    controllo numeri

    Salve a tutti praticamente ho un form con 6 campi testuali, in questi campi inserisco per ognuno un numero, recupero questi numeri dopodiché devo controllare quanti di questi numeri sono presenti in un'array, per ogni numero trovato incremento di 1 una variabile.

    L'array sarà formato così, primo campo una data e poi gli altri 6 campi da numeri diversi. totale 1000 date ognuna con 6 numeri.

    una cosa di questo genere:

    $numeri = array(
    "12 gennaio 2012" => array("5","44","43","55","22","44"),
    "20 gennaio 2012" => array("15","4","77","22","24","90")
    }

    forse va costruito in modo diverso


    come posso fare a controllare quanti numeri corrispondono e oltre a questo stampare la data?

  2. #2
    forse va costruito in modo diverso
    puoi anche mantenere questa costruzione e segnare le occorrenze in un array del tipo di cui sotto, in cui la corrispndenza del numero la frequenza è dato dall'indice

    $frequenze = array(
    "12 gennaio 2012" => array(0,0,0,0,0,0),
    "20 gennaio 2012" => array(0,0,0,0,0,0),
    }

    oppure (meglio)

    convertire il tuo array $numeri, utilizzando le numerose funzioni sugli array di php (combine, compose, ...), in un array associativo
    $numeri_frequenze = array(
    "12 gennaio 2012" => array("5" => $freq,"44" => $freq,"43" => $freq,"55" => $freq,"22" => $freq,"44" => $freq),
    "20 gennaio 2012" => array("15" => $freq,"4" => $freq,"77" => $freq,"22" => $freq,"24" => $freq,"90" => $freq)
    }
    semplicità ... al sol nominarla sembra svanire

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    codice:
    $unoo = $_POST['primo'];
    $dueo = $_POST['secondo'];
    $treo = $_POST['terzo'];
    $quattroo = $_POST['quarto'];
    $cinqueo = $_POST['quinto'];
    $seio = $_POST['sesto'];
    
    $numeri = array(
    "12 gennaio 2012" => array("4","11","13","14","55"),
    "20 gennaio 2012" => array("3","12","5","46","77"),
    "22 gennaio 2012" => array("4","17","23","34","5"),
    "4 gennaio 2012" => array("35","21","77","44","67")
    );
    
    foreach( $numeri as $chiave  => $valore ) {
    
    if($unoo == $numeri[$chiave][0] || $unoo == $numeri[$chiave][1] || $unoo == $numeri[$chiave][2] || $unoo == $numeri[$chiave][3] || $unoo == $numeri[$chiave][4] || $unoo == $numeri[$chiave][5]) {echo $chiave;}
    
    elseif($dueo == $numeri[$chiave][0] || $dueo == $numeri[$chiave][1] || $dueo == $numeri[$chiave][2] || $dueo == $numeri[$chiave][3] || $dueo == $numeri[$chiave][4] || $dueo == $numeri[$chiave][5]) {echo $chiave;}
    
    elseif($treo == $numeri[$chiave][0] || $treo == $numeri[$chiave][1] || $treo == $numeri[$chiave][2] || $treo == $numeri[$chiave][3] || $treo == $numeri[$chiave][4] || $treo == $numeri[$chiave][5]) {echo $chiave;}
    
    elseif($quattroo == $numeri[$chiave][0] || quattroo == $numeri[$chiave][1] || quattroo == $numeri[$chiave][2] || quattroo == $numeri[$chiave][3] || quattroo == $numeri[$chiave][4] || quattroo == $numeri[$chiave][5]) {echo $chiave;}
    
    elseif($cinqueo == $numeri[$chiave][0] || $cinqueo == $numeri[$chiave][1] || $cinqueo == $numeri[$chiave][2] || $cinqueo == $numeri[$chiave][3] || $cinqueo == $numeri[$chiave][4] || $cinqueo == $numeri[$chiave][5]) {echo $chiave;}
    
    elseif($seio == $numeri[$chiave][0] || $seio == $numeri[$chiave][1] || $seio == $numeri[$chiave][2] || $seio == $numeri[$chiave][3] || $seio == $numeri[$chiave][4] || $seio == $numeri[$chiave][5]) {echo $chiave;}
    
    }

    in questo modo prendo i sei numeri dal form poi controllo se ognuno dei sei numeri é presente nell'array, se qualcosa é presente stampo a video la data.


    Oltre alla data, per ogni numero che coincide devo incrementare di 1 un contatore,il risutato finale sarà per gni data, la data con affianco il numero esempio 3 numeri trovati = 3


    qualcuno mi aiuta?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    nessuno?

  5. #5
    Ciao, se ho capito bene questa è la soluzione...
    Codice PHP:
            // Creo un'array
            
    $trovati = array();
            foreach (
    $numeri as $chiave => $valore) {
                
    //aggiungo all'array la chiave $chiave e gli assegno valore 0
                
    $trovati[$chiave] = 0;
                if (
    $unoo == $numeri[$chiave][0] || $unoo == $numeri[$chiave][1] || $unoo == $numeri[$chiave][2] || $unoo == $numeri[$chiave][3] || $unoo == $numeri[$chiave][4] || $unoo == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                } elseif (
    $dueo == $numeri[$chiave][0] || $dueo == $numeri[$chiave][1] || $dueo == $numeri[$chiave][2] || $dueo == $numeri[$chiave][3] || $dueo == $numeri[$chiave][4] || $dueo == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                } elseif (
    $treo == $numeri[$chiave][0] || $treo == $numeri[$chiave][1] || $treo == $numeri[$chiave][2] || $treo == $numeri[$chiave][3] || $treo == $numeri[$chiave][4] || $treo == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                } elseif (
    $quattroo == $numeri[$chiave][0] || quattroo == $numeri[$chiave][1] || quattroo == $numeri[$chiave][2] || quattroo == $numeri[$chiave][3] || quattroo == $numeri[$chiave][4] || quattroo == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                } elseif (
    $cinqueo == $numeri[$chiave][0] || $cinqueo == $numeri[$chiave][1] || $cinqueo == $numeri[$chiave][2] || $cinqueo == $numeri[$chiave][3] || $cinqueo == $numeri[$chiave][4] || $cinqueo == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                } elseif (
    $seio == $numeri[$chiave][0] || $seio == $numeri[$chiave][1] || $seio == $numeri[$chiave][2] || $seio == $numeri[$chiave][3] || $seio == $numeri[$chiave][4] || $seio == $numeri[$chiave][5]) {
                    echo 
    $chiave;
                    
    //implemento il valore dell'array di un punto
                    
    $trovati[$chiave] =$trovati[$chiave]+1;  
                }
                
    //se non vuoi tenere una data con valore a 0
                
    if($trovati[$chiave] == 0)
                    unset(
    $trovati[$chiave]);
            } 
    Spero vada bene...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    Guarda ti spiego, sono 6 numeri di un lotto straniero, nell'array ho la data di estrazione con i 6 numeri usciti. Io inserisco i 6 numeri da controllare tramite 6 input text di un form li recupero e poi confronto i numeri inseriti nel form con quelli nell'array, per ogni data se ad esempio trova 2 numeri corrispondenti stampa a video la data e il numero 2 se ne avrei trovati 4 stamperei la data e il valore 4.

  7. #7
    usa array_intersect()

    più o meno così:
    Codice PHP:
    $estratti=array();
    $estratti[]=$_POST['primo'];
    $estratti[]=$_POST['secondo'];
    ....
    $estratti[]=$_POST['sesto'];

    $numeri = array(
    "12 gennaio 2012" => array("4","11","13","14","55"),
    "20 gennaio 2012" => array("3","12","5","46","77"),
    "22 gennaio 2012" => array("4","17","23","34","5"),
    "4 gennaio 2012" => array("35","21","77","44","67")
    );

    foreach (
    $numeri as $key=>$value
    {
       
    $esatti array_intersect($value,$estratti);
       if (
    count($esatti)>0
      {
         echo 
    $key.': '.count($esatti).'numeri esatti
    '
    ;

      }


  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    perfetto grazie mille roccia

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.