1

有什么方法可以在 php 中求和/去除字符?

例如,如果

$var1 = 'a';
$var2 = 'b';
$var3 = 'a';

$calculation = $var1 - $var2 + $var3;

echo $calculation;

我希望输出为2a-b

就像我们在高中代数中所做的那样?

4

1 回答 1

1

我写了一个简单的函数来制作你想要的东西。这只是一个例子,如果你真的想使用它,你将不得不改进它,但这是一个好的开始。

限制:仅适用于字母(如果添加数字将无法正常工作,您必须添加该功能)。

所有的字母都必须有正负。

您必须在加号或减号前使用空格。

这绝对不是最好的方法,因为我说过你必须改进它。我写得很快,但我测试了一下。

<?
function calc($str){
    $data = preg_split("/ /", $str);
    $used = Array();
    $buffer = "";
    foreach ($data as $pos=>$letter){
        foreach ($data as $pos2=>$letter2){
            if ($letter[1] == $letter2[1] && !in_array($pos, $used) && !in_array($pos2, $used) && $pos != $pos2){
                $first = $letter[0] == '+' ? 1 : -1;
                $second = $letter2[0] == '+' ? 1 : -1;
                $buffer .= ($first+$second).$letter[1];
                $used[count($used)] = $pos;
                $used[count($used)] = $pos2;
            }
        }
    }
    foreach ($data as $pos=>$letter){
        if (!in_array($pos, $used)){
            $buffer .= $letter;
        }
    }
    return $buffer;
}
echo calc("+a -b +a");
?>

输出:

2a-b
于 2013-09-29T05:11:45.820 回答