how to do a sum on a string in php?

2019-02-24 12:03发布

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

5条回答
不美不萌又怎样
2楼-- · 2019-02-24 12:46

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

查看更多
ゆ 、 Hurt°
3楼-- · 2019-02-24 12:50

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. (:

查看更多
4楼-- · 2019-02-24 12:54
function get_sum()
{
    global $v;
    $temp=0;
    for($i=0;$i<strlen($v);$i++)
    {
        $temp+=intval($v[$i]);
    }
    echo $temp;
}

echo get_sum();
查看更多
做自己的国王
5楼-- · 2019-02-24 12:56
$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().

查看更多
forever°为你锁心
6楼-- · 2019-02-24 12:59
$v = "24000,1500,1500,1500,1500,1500,";
$result = 0;
foreach(explode(',',$v) as $val)
     $result +=intval($val);

echo $result;///31500
查看更多
登录 后发表回答