Как рассчитать сумму всех входных значений в тексте с запятыми? - PullRequest
0 голосов
/ 23 февраля 2019

Я хочу вычислить все входные значения в тексте, которые имеют или не имеют запятые.
Пример I ввода 2,3,4,5 или 2345 в текстовое поле.Его сумма должна быть равна 14, если пользователь использовал или не использовал , между цифрами.

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019
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: convertStringNumbers ('2345') Вывод Ваша сумма: 14 cheers

2 - пользовательский ввод 2,3,4,5: CalculateStringNumbers ('2,3,4,5') Выведите сумму: 14 ура

0 голосов
/ 23 февраля 2019

Мое более краткое решение было бы:

$sum = array_sum(preg_split('/[\s,]*/', $input));
0 голосов
/ 23 февраля 2019

Удача после публикации моих вопросов, мне удается найти решение самостоятельно ... вот оно:

<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 ура:)

...