Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: array_sum somma

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    43

    array_sum somma

    ciao a tutti
    ho cercato sul forum ma non ho trovato risposta.
    Devo fare la somma di un array che corrisponde a $record [3], ma non ci riesco. Io faccio così

    $somma=array($record[3]);
    $mix=array_sum($somma);
    echo $mix;

    ma mi mostra tutti i numeri in sequenza senza farmi alcuna somma. Dove sbaglio? grazie

  2. #2
    Ma $record[3] è un array? e tu vuoi avere la somma dei sui valori?
    Codice PHP:
    $somma array_sum($record[3]); 
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    43
    si esatto, ma non funziona...
    se inserisco il codice come hai fatto te non mi mostra piu niente. Come posso fare?
    PS - il [3] è l'indice dell'array.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    posta il contenuto della variabile (var_export($record);) e precisa di cosa vuoi la somma

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Sei sicuro che $record[3] sia un array e non un numero?

    se fai

    print_r($record[3]);

    cosa ti viene stampato?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    43
    ho fatto var_export ed è uscito questo

    array ( 0 => 'auchan', 'isbn' => 'auchan', 1 => 'pasta de cecco', 'tipo' => 'pasta de cecco', 2 => '250 gr', 'quantità' => '250 gr', 3 => '1.39', 'prezzo' => '1.39', 4 => 'pasta', 'genere' => 'pasta', )

    il db riguarda supermercati e merce al dettaglio. Questo è solo un pezzo di tutto il codice. Praticamente il [3] riguarda il prezzo. Deve farmi la somma di tutti i prezzi selezionati

    mentre con print_r mi visualizza questo

    Array ( [0] => auchan [isbn] => auchan [1] => pasta de cecco [tipo] => pasta de cecco [2] => 250 gr [quantità] => 250 gr [3] => 1.39 [prezzo] => 1.39 [4] => pasta [genere] => pasta ) 1

    spero sia chiaro

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Cioè print_r($record[3]) ti stampa questo?
    Array ( [0] => auchan [isbn] => auchan [1] => pasta de cecco [tipo] => pasta de cecco [2] => 250 gr [quantità] => 250 gr [3] => 1.39 [prezzo] => 1.39 [4] => pasta [genere] => pasta )

    Se si, che somma dovrebbe fare?
    Quanto fa questa somma?
    auchan + auchan + pasta de cecco + pasta de cecco + 250 gr + 250 gr + 1.39 + 1.39 + pasta + pasta

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    43
    no...
    la somma deve riguardare solo il prezzo
    avendo questo
    Array ( [0] => auchan [isbn] => auchan [1] => pasta de cecco [tipo] => pasta de cecco [2] => 250 gr [quantità] => 250 gr [3] => 1.39 [prezzo] => 1.39 [4] => pasta [genere] => pasta ) 1 Array ( [0] => auchan [isbn] => auchan [1] => vino [tipo] => vino [2] => 1 lt [quantità] => 1 lt [3] => 0.89 [prezzo] => 0.89 [4] => vinorosso [genere] => vinorosso ) 1
    dovrà sommarmi il prezzo di pasta e vino, quindi 1.39+0.89.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Allora sbagli ad usare la funzione array_sum()

    se fai così:
    $somma=array($record[3]); //$somma è un array di un solo elemento
    $mix=array_sum($somma); //array_sum() non ha niente da sommare, ti restituisce il numero contenuto in $somma (c'è solo 1 numero)

    metodo corretto
    Codice PHP:
    $somma 0;
    foreach(
    $record as $prodotto)
    {
        
    $somma += $prodotto[3];
    }
    echo 
    $somma

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    43
    grazie mille, ok, quasi ci siamo. Ma c'è un altro piccolo problemino, anzi due...

    mi visualizza il risultato in questo modo
    18 18 18 18 18 18 0 18 0 18
    mentre io vorrei vederlo una volta sola...
    e poi non mi fa vedere i decimali. Il totale esatto è 18,43. C'entra il fatto che il tipo di dati del campo prezzo del db è FLOAT?

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.