处理变量名不带$符号的字符串方程


Process string equation with variable names without $ sign

我曾尝试使用搜索函数来寻找用例的解决方案,但未能找到类似的情况。请帮我一下。

我目前正在开发一个网页,可以从两个文本文件中读取不同的数组中的名称和数字。为了便于解释,我们假设:

$namesarray = array("x","y");
$valuesarray = array("3","2");

我还有一个单独的数组,它包含从如下文本文件导入的公式:

$formulaname = array("data1","data2");
$formula = array("x+2","x+y");

因此,用数学术语来说,公式可以写成:

data1 = x+2
data2 = x+y

当我调用data2:时,我想做的是这样的计算

$data2 = $x + $y;

我希望php自动为公式的x和y分别使用3和2,尽管公式没有任何$符号来表示x和y作为变量。

这种情况可能发生吗?我研究过mathemeval和eval,但我不太确定它们是否适用于我的情况。

感谢您的帮助。:)

$namesarray = array("x","y");
$valuesarray = array("3","2");
$data = array_combine(
    $namesarray,
    $valuesarray
);
extract($data);

将创建具有正确值的$x$y变量;

尽管使用带有xy键的基本$data数组可能更好,并且如果这是用户输入的公式,则使用eval()肯定是有风险的。

您可以使用关联数组,例如:

$variables = array('x' => 3, 'y' => 2);
$data1 = $variables['x'] + 2;
$data2 = $variables['x'] + $variables['y'];