Sommare valori di un array per chiave in PHP

Mattepuffo's logo
Sommare valori di un array per chiave in PHP

Sommare valori di un array per chiave in PHP

In pratica, abbiamo un array associativo, composto da record chiave:valore.

Visualizzo questi record in una tabella, e alla fine voglio stampare la somma del campo valore.

Tutto ciò senza fare somme ad ogni ciclo.

In verità è più difficile spiegarlo a parole che vedere il risultato.

In PHP possiamo usare due funzioni per fare la somma di chiave:

  • array_column
  • array_sum

La prima restituisce un altro array con i valori del campo passato come secondo argomento; il secondo somma quei valori.

Scritto in codice:

$sumEntrate = array_sum(array_column($query, 'sum_entrate'));

Dove:

  • $query è l'array estratto da una query sul db
  • sum_entrate è il campo dell'array che vogliamo estrapolare e sommare

Giusto per farvi capire, la query è questa:

SELECT
YEAR(mov_data) anno,
SUM(IF(mov_tipo = "E", mov_valore, 0)) AS sum_entrate,
SUM(IF(mov_tipo = "U", mov_valore, 0)) AS sum_uscite
FROM movimenti
WHERE mov_utente_fk = ?
GROUP BY anno
ORDER BY anno DESC, mov_tipo

Come vedete non abbiamo nessun ciclo per eseguire questa operazione; il ciclo lo faccio solo per visualizzare tutti i record, ma è una operazione distinta.

Enjoy!


Condividi

Commentami!