簡體   English   中英

如何計算尾隨逗號的文本中所有輸入值的總和?

[英]How to calculate sum of all input value in text having trailing commas?

我想計算文本中是否有尾隨逗號的所有輸入值。
示例我在文本框中輸入2,3,4,52345 它的總和應為14 ,前提是用戶使用過或未使用過,介於數字之間。

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:calculateStringNumbers('2345') 輸出你的總和是:14 歡呼

2 - 用戶輸入 2,3,4,5: calculateStringNumbers('2,3,4,5') 輸出您的總和是:14 歡呼

我更簡潔的解決方案是:

$sum = array_sum(preg_split('/[\s,]*/', $input));

發布我的問題后很幸運,我設法自己找到了解決方案..這里是:

<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歡呼 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM