Visualizzazione dei risultati da 1 a 10 su 30

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Non so se è un pò troppo complesso comunque...
    Codice PHP:
    $array = [[1,2,3],[2,2],[4,5,2,3],[1,4,2],[3,6,5]]; //20 max unico

    function SommaUnicaMassima(array $array, array &$somma){
        foreach(
    $array as $arr){
            
    $max max($arr);
            if(!
    in_array($max,$somma))
                
    $somma[] = $max;
            else
                
    SommaUnicaMassima([array_diff($arr,[$max])],$somma);
        }
    }

    $somma = [];
    SommaUnicaMassima($array$somma);
    echo 
    array_sum($somma); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    23
    Quote Originariamente inviata da RoTeam Visualizza il messaggio
    Non so se è un pò troppo complesso comunque...
    Codice PHP:
    $array = [[1,2,3],[2,2],[4,5,2,3],[1,4,2],[3,6,5]]; //20 max unico

    function SommaUnicaMassima(array $array, array &$somma){
        foreach(
    $array as $arr){
            
    $max max($arr);
            if(!
    in_array($max,$somma))
                
    $somma[] = $max;
            else
                
    SommaUnicaMassima([array_diff($arr,[$max])],$somma);
        }
    }

    $somma = [];
    SommaUnicaMassima($array$somma);
    echo 
    array_sum($somma); 
    Ciao e grazie della risposta!
    Ti dispiacerebbe commentarlo un pochino? Trovo difficoltà nell'adattarlo...
    Grazie!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Quote Originariamente inviata da gfr1991 Visualizza il messaggio
    Ciao e grazie della risposta!
    Ti dispiacerebbe commentarlo un pochino? Trovo difficoltà nell'adattarlo...
    Grazie!
    Codice PHP:
    $array = [[1,2,3],[2,2],[4,5,2,3],[1,4,2],[3,6,5]]; //20 max unico

    //$array è un array multidimensionale con tutti gli array
    //$somma un array passato per riferimento dove andranno tutti i numeri più grandi
    function SommaUnicaMassima(array $array, array &$somma){
        foreach(
    $array as $arr){
            
    //trova il valore massimo
            
    $max max($arr);
            
    //se il valore non è già stato aggiunto lo aggiunge
            
    if(!in_array($max,$somma))
                
    $somma[] = $max;
            else
                
    //se il valore è già stato aggiunto lo toglie dall'array e prova a trovarne un altro in maniera ricorsiva
                
    SommaUnicaMassima([array_diff($arr,[$max])],$somma);
        }
    }

    $somma = [];
    SommaUnicaMassima($array$somma);
    //alla fine con array_sum() si sommano tutti i valori di $somma
    echo array_sum($somma); 
    Ultima modifica di RoTeam; 10-08-2014 a 15:13

Tag per questa discussione

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