Как рассчитать сумму всех входных значений в тексте с запятыми?
Я хочу рассчитать все входные значения в тексте, которые имеют или не имеют запятые.
Пример ввода 2,3,4,5
или же 2345
в текстовом поле. Его сумма должна прийти как 14
, если пользователь использовал или не использовал ,
между числами.
3 ответа
Мое более краткое решение было бы:
$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: convertStringNumbers('2345') Вывод Ваша сумма: 14 ура
2 - пользовательский ввод 2,3,4,5: convertStringNumbers('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 ура:)