3

我的数据库中有一个字段,其中包含类似21;48;33;22;31. 然后我想把它转换成数学计算21+48+33+22+31

$points = "21;48;33;22;31";
$points = str_replace(";","+",$points );
$points = preg_replace('/[^0-9\+\-\*\/\s]+/', '', $points);
echo $points;

但这根本行不通。我有相同的字符串“21+48+33+22+31”而不是总和。

4

6 回答 6

8
$points = "21;48;33;22;31";
$points = explode(';',$points );
$points = array_sum($points);
echo $points;
于 2013-03-25T09:06:13.850 回答
2
$points = "21;48;33;22;31";
$arr = explode(";", $points);
$points = 0;
foreach($arr as $key => $rows){
    $points += $rows[$key];
}
echo $points;

试试上面的代码,它会给你正确的结果。

或者你也可以试试:

$points = "21;48;33;22;31";
$arr = explode(";", $points);
echo $points = array_sum($arr);
于 2013-03-25T09:05:33.327 回答
0

最简单的方法是爆炸字符串。

然后你可以用 foreach 遍历结果数组并计算它们。

$points = "21;48;33;22;31";
$points = explode(";", $points);
$calc = 0;

forearch($points as $point) {
    $calc += $point;
}

或者您可以使用array_sum

$points = "21;48;33;22;31";
$points = explode(";", $points);
$calc = array_sum($points);

类似的东西。也许有一些更短的方法。

于 2013-03-25T09:06:02.267 回答
0
$string = "21;48;33;22;31";

$string = explode(";" , "21;48;33;22;31");


$point = 0;
foreach($string as $num)
{       // by using (int) you can convert string to int.
    $point = (int)$num + $point;

}

print($point);
// output 
155
于 2013-03-25T09:06:28.763 回答
0

爆炸它然后循环求和...

 <?php
        $total = 0; // for getting the total
        $points = "21;48;33;22;31";
        $points = explode(';',$points);
     for($i=0;$i<count($points);$i++){
        $total+= $points[$i];
    }
    echo $total;
    ?>
于 2013-03-25T09:11:35.950 回答
0
<?php
eval('$sum = ' . str_replace(';','+','21;48;33;22;31').';');
echo $sum;
于 2013-03-25T09:20:44.017 回答