计算 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
如何计算字符串中的所有数字以获得它们的总和? 示例字符串:
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