有什么方法可以在 php 中求和/去除字符?
例如,如果
$var1 = 'a';
$var2 = 'b';
$var3 = 'a';
$calculation = $var1 - $var2 + $var3;
echo $calculation;
我希望输出为2a-b
就像我们在高中代数中所做的那样?
有什么方法可以在 php 中求和/去除字符?
例如,如果
$var1 = 'a';
$var2 = 'b';
$var3 = 'a';
$calculation = $var1 - $var2 + $var3;
echo $calculation;
我希望输出为2a-b
就像我们在高中代数中所做的那样?
我写了一个简单的函数来制作你想要的东西。这只是一个例子,如果你真的想使用它,你将不得不改进它,但这是一个好的开始。
限制:仅适用于字母(如果添加数字将无法正常工作,您必须添加该功能)。
所有的字母都必须有正负。
您必须在加号或减号前使用空格。
这绝对不是最好的方法,因为我说过你必须改进它。我写得很快,但我测试了一下。
<?
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