str_replace" array"不删除逗号

时间:2014-08-05 02:45:54

标签: php

我正在尝试删除百分比(%)和逗号(,),它似乎只删除百分比。

function votesremaining($totalvotes, $firstplace, $currentplace) {
    $search = array('%', ',');
    $replace = array('', '');
    $formula = round(str_replace($search,$replace,$totalvotes * ((($firstplace+1) - $currentplace) / 100)));
    return $formula;
}

我做错了吗?

2 个答案:

答案 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;

}