作者gamekingdom (pcman)
看板PHP
标题[请益] 如何将字串当成数字运算呢
时间Tue Oct 7 00:40:06 2014
因之前mysql取出之格式为varchar
且都有千位元分号,数量庞大无法一一修改
如果PHP将取出的varchar相加
会忽略分号的数字,例如:
$a="5,900";
$b="6,200";
echo $a+$b;
结果会得出11
而不是12100
请问各位应该如何解决
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.140.56
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1412613608.A.B4C.html
1F:→ MOONRAKER: preg_replace取出\d就是数字了 了不起再intval()一下 10/07 02:20
2F:→ MOONRAKER: Sorry, 这好像用preg_match()才对 10/07 02:20
3F:→ noxhsu: 想到最快的处理方式 intval(str_replace(',', '', $val)); 10/07 06:17
4F:→ noxhsu: 不过用正规取出比较正确 10/07 06:18
5F:→ noxhsu: 回头,不过我记得php的preg只有比对与取代的样子 10/07 07:11
6F:→ MOONRAKER: 有道理,如果额外符号只有逗点,str_replace()卡实在 10/07 13:25
7F:→ noxhsu: 所以正确取出数值是 intval(str_replace(',', '', 10/08 23:30
8F:→ noxhsu: preg_replace('/\d/', '$0', $val))); 是去千位数值 10/08 23:31