2013-05-28 3 views
-3

Если у меня была строка, содержащая следующее, можно ли добавить все номера вверх и удалить запятые?Добавление чисел в PHP

$string = "1,2,3,4,5,6,"; 

Я пробовал несколько вариантов, но не могу понять, как это сделать.

Спасибо

+1

Вы пробовали взорваться? используйте это в запятой в строке. Результатом является массив с числами – B8vrede

+3

explode() и array_sum() –

ответ

8

попробовать это:

$string = "1,2,3,4,5,6,"; 
echo array_sum(explode(',', $string)); 

И ответ 21

2

Этот PHP должен сделать трюк:
array_sum(explode(',', $string));

Этот код сначала использует explode(), расщепляющий вверх по вашей строке в массив, разделяющий второй параметр, используя символ идентифицированный по первому параметру.

Тогда, поскольку у вас есть массив, вы получаете сумму вложенного массива array_sum(), который в этом случае является строкой, которую вы просто разделили.

Ссылки:
http://php.net/manual/en/function.array-sum.php
http://php.net/manual/en/function.explode.php

Edit: Так как были подобные повторяющиеся ответы, которые я в дальнейшем расширен на мой ответ

0
$tmp = explode(',', $string); //Split the string on the commas 

$sum = 0; 

//Loop over the numbers and add them to $tmp 
foreach ($tmp as $number) 
{ 
    $sum = $sum + $number; 
} 
0

Или, более вытянутый версия:

$string = "1,2,3,4,5,6,"; 
$sum = 0; 

foreach(explode(',', $string) as $num) 
{ 
    $sum += $num; 
} 
echo $sum; 
+0

'foreach' что? У вас нет массива в вашем коде? –

+0

Метод 'explode' будет создавать массив. Попробуйте скопировать и вставить его здесь http://writecodeonline.com/php/ – user1477388

+0

Достаточно справедливо. Я использую '$ array = range (1, 6);' then 'foreach ($ array as $ number)'. Гораздо чище. –

0

Попробуйте следующее:

$values = array(); 
$sum = 0; 

$values = explode(',', $string); 

foreach($values as $value) 
{ 
    $sum = $sum + $value; 
} 

echo $sum; 
Смежные вопросы