计算 php 字符串中的所有数字

Count all numbers in php string

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

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'));

运气不好

这应该适合你:

(这里我直接用preg_match_all() to get all float numbers after :. And after that i count all values together with 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