how to do a sum on a string in php?

17,502

Solution 1

$sum = array_sum( explode( ',', $v ) );

What this does is split $v by the delimiter , with explode() and sum the resulting array of parts with array_sum().

Solution 2

$v = "24000,1500,1500,1500,1500,1500,";
$result = 0;
foreach(explode(',',$v) as $val)
     $result +=intval($val);

echo $result;///31500

Solution 3

Use str_getcsv to obtain an array of the values. Then loop through the array to sum those values.

Solution 4

The explode function works best in your situation. What explode does is that it splits the string based on the parameter that you specify it. You can think of it as slicing the string based on the parameter and putting it in an array.

Once done, you have a bunch of numbers in the array. Just do a sum. If you want to ensure that all are numbers, you can use is_numeric() to ensure. (:

Share:
17,502
Patrioticcow
Author by

Patrioticcow

spooky action at a distance

Updated on June 26, 2022

Comments

  • Patrioticcow
    Patrioticcow almost 2 years

    i have a simple question:

    i have this var: $v = "24000,1500,1500,1500,1500,1500,";

    i would like to add those numbers together.

    i've tried to str_replace the , with + and so a eval(), but that didn't worked.

    i also tried str_split() but it doesn't know to split on the ,.

    maybe if somehow convert it to an array and do a array_sum...

    any ideas?

    thanks