2015-02-04 45 views
-1

如何计算字符串中的所有数字以获得它们的总和? 示例字符串:在PHP字符串中计算所有数字

G12103108 : 0.00 Troy oz. | U20072491 : 12.10 USD | U27811285 : 0.55 USD | U41125827 : 0.00 USD | U47329193 : 0.00 USD | E30010787 : 10.01 EUR 

如何获得结果?

22.66 

我试图

count(array_filter(str_split($str),'is_numeric')); 

没有运气

+4

你尝试过什么? – Rizier123

+0

try count(array_filter(str_split($ str),'is_numeric'));没有运气 – user1482261

+0

或者在'|'上正则表达或者爆炸,在':'之前删除所有内容,并且在另一个空间之后删除所有内容。最后添加数值 – Dimitri

回答

3

这应该为你工作:

(这里我简单地使用preg_match_all():后能得到所有浮点数在这之后。我把所有数值都与array_sum()一起计算)

<?php 

    $str = "G12103108 : 0.00 Troy oz. | U20072491 : 12.10 USD | U27811285 : 0.55 USD | U41125827 : 0.00 USD | U47329193 : 0.00 USD | E30010787 : 10.01 EUR"; 
    preg_match_all('!:\s(\d+\.*\d*)!', $str, $matches); 
    echo array_sum($matches[1]); 

?> 

输出:

22.66 
+0

噢!完美的通用解决方 – user1482261

+0

@ user1482261不客气!祝你有个美好的一天:D(希望你明白我所做的一切,否则就问) – Rizier123