我正在尝试删除百分比(%)和逗号(,),它似乎只删除百分比。
function votesremaining($totalvotes, $firstplace, $currentplace) {
$search = array('%', ',');
$replace = array('', '');
$formula = round(str_replace($search,$replace,$totalvotes * ((($firstplace+1) - $currentplace) / 100)));
return $formula;
}
我做错了吗?
答案 0 :(得分:2)
你可能弄乱了括号。在$ totvotes之后就有一个丢失。
$formula = round(str_replace($search,$replace,$totalvotes) * ((($firstplace+1) - $currentplace) / 100));
但是,我不太清楚你对这一陈述的期望是什么。无论如何,该产品可能无法正常工作。
也许你打算将字符串拆分成一个数组,然后将每个条目乘以你在这里的产品?
http://us2.php.net/manual/en/function.preg-split.php
更新
我看到你发表的评论几乎都说$totalvotes
只是一个数字,但可能有逗号和百分比字符。所以...确实不需要preg_split()!
答案 1 :(得分:0)
您在进行数学运算后正在替换 - 正常的用例是在数学运算之前进行替换。
我真的不知道你的功能输入是什么,但它应该是这样的:
function votesremaining($totalvotes, $firstplace, $currentplace) {
$search = array('%', ',');
$replace = array('', '');
$totalvotes = str_replace($search, $replace, $totalvotes);
$firstplace = str_replace($search, $replace, $firstplace);
$currentplace = str_replace($search, $replace, $currentplace);
$formula = round($totalvotes * (($firstplace+1) - $currentplace) / 100);
return $formula;
}