如何计算具有尾逗号的文本中所有输入值的总和



我想计算具有或没有尾逗号的文本中的所有输入值。
示例I输入2,3,4,5或文本框中的2345。它的总和应为14,前提是用户在数字之间使用或未使用过,

我更简洁的解决方案是:

$sum = array_sum(preg_split('/[s,]*/', $input));
function calculateStringNumbers($string)
{
    $sum = 0;
    $numbers_array = explode(',',$string);
    if(is_array($numbers_array) && count($numbers_array) > 0 && strpos($string, ',') !== false)
    {
        $sum = array_sum($numbers_array);
    }
    else
    {
        $sum = sum($string);
    }
    echo 'Your Sum is: '.$sum.' cheers';
}

function sum($num) {
    $sum = 0;
    for ($i = 0; $i < strlen($num); $i++){
        $sum += $num[$i];
    }
    return $sum;
}

测试用例:

1-用户输入2345: ClaculateStringNumbers('2345')输出您的总和是:14个欢呼

2-用户输入2,3,4,5: calculatestringnumbers('2,3,4,5')输出您的总和是:14个欢呼

幸运的是在发布我的问题后,我设法自己找到解决方案。在这里是:

<form method="POST" action="">
<input type="text" name="checkname"/>
<input type="submit" name="mysubmit"/>
</form>
<?php
if (isset($_POST['mysubmit']))
{
$test=$_POST['checkname'];
$search_comma=strpos($test,',');    
$testexp=explode(',',$test);
$allsum=implode('',$testexp);
$allsum=preg_replace('/s+/', '', $allsum);
$sum=0;
for($i=0;$i<strlen($allsum);$i++)
{
 $sum=$sum+$allsum[$i];
}
 echo 'Your Sum is:'.$sum;
}

用户输入1:1,2,3,4

用户输入2:1234

=================

输出:您的总和是: 10 Cheers:)

最新更新