Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    ordinare array, scartare il valore minore e sommare gli altri

    Ciao a tutti!

    Devo fare con un array quello che dice il titolo.
    Cioè con l'array

    $prova = array ("5","3","6","1");

    dovrei infine ritrovarmi con la variabile $prova (che non deve più essere un array) che abbia valore 14 (scartato l'1 che è il minore, si sommano 5+3+6)...

    ...mi aiutereste?

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    Codice PHP:
    sort($prova);
    $min=$prova[0];
    $prova=array_sum($prova);
    $prova=$prova-$min;
    unset(
    $min); 
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  3. #3
    Originariamente inviato da luke83
    Codice PHP:
    sort($prova);
    $min=$prova[0];
    $prova=array_sum($prova);
    $prova=$prova-$min;
    unset(
    $min); 
    Oppure:
    codice:
    $input = array(5, 3, 6, 1);
    sort($input);
    array_shift($input);
    echo array_sum($input);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    tnx!

  5. #5
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    anke..

    Codice PHP:
    sort($prova);
    unset(
    $prova[0]);
    $prova=array_sum($prova); 
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  6. #6
    Funziona tutto ma ho cmq un problema, cioè il fatto è che gli elementi dell'array prova sono generati ognuno in questo modo :

    srand ((double) microtime () * 1000000);
    $elemento1 = rand (1,6);

    E così via per tutti e quattro gli elementi quindi dovrei avere un risultato minimo di valore 3 e uno massimo di valore 18, ma ho notato che su una trentina di tentativi il risultato finale non supera il 12!!! Come è possibile?


  7. #7
    Insomma il mio codice è così:

    srand ((double) microtime () * 1000000);
    $val1 = rand (1,6);
    srand ((double) microtime () * 1000000);
    $val2 = rand (1,6);
    srand ((double) microtime () * 1000000);
    $val3 = rand (1,6);
    srand ((double) microtime () * 1000000);
    $val4 = rand (1,6);
    $totale = array ("$val1", "$val2", "$val3","val4");
    sort($totale);
    unset($totale[0]);
    $totale = array_sum($totale);

    dove sbaglio?

    p.s: ho continuato a riprovare altre volte ancora e più di 12 non viene proprio mai...

  8. #8
    $totale = array ("$val1", "$val2", "$val3","val4");

    se metti $val4 invece di val4 vedrai che esce....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    srand ((double) microtime () * 1000000);
    $tot[] = rand (1,6);
    srand ((double) microtime () * 1000000);
    $tot[] = rand (1,6);
    srand ((double) microtime () * 1000000);
    $tot[] = rand (1,6);
    srand ((double) microtime () * 1000000);
    $tot[] = rand (1,6);
    sort($tot);
    unset($tot[0]);
    $tot = array_sum($tot);

    così dovrebbe andare.. prima sommavi delle stringhe nn valori numerici...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  10. #10
    Originariamente inviato da luke83
    così dovrebbe andare.. prima sommavi delle stringhe nn valori numerici...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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