【问题标题】:How to calculate sum of all input value in text having trailing commas?如何计算带有尾随逗号的文本中所有输入值的总和?
【发布时间】:2019-02-23 11:55:56
【问题描述】:

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

【问题讨论】:

  • 如果用户想输入10,12,14但输入为101214怎么办?然后,您的方法会将其总和为 9 而不是 36
  • 有什么建议不胜感激?

标签: php input sum-of-digits


【解决方案1】:

我更简洁的解决方案是:

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

【讨论】:

    【解决方案2】:
    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: 计算字符串编号('2345') 输出你的总和是:14欢呼

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

    【讨论】:

    • 这个解决方案是错误的。输入 2345 输出为 2345,而不是想要的“14”
    • 我测试了自己,兄弟,然后我提出了解决方案。我还没有使用任何内置功能。如果需要,我将发送一个工作截图
    【解决方案3】:

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

    <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 干杯 :)

    【讨论】:

    • 你不知道这些函数是做什么的,是吗?
    • 我有线索先生,但只是询问你提到的事情。如果你不想贡献,那没问题。谢谢
    • 您的问题没有答案,因为您没有涵盖我在问题的 cmets 中所写的边缘情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多