使用不带$符号的变量名称处理字符串等式

时间:2014-11-10 08:19:12

标签: php formula equation

我曾尝试使用搜索功能来解决我的用例,但我找不到像我这样的情况。请帮助我。

我目前正在开发一个网页,其中包含2个带有名称和数字的文本文件,这些文件位于不同的数组中。 为了便于解释,我们说:

$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;

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

这种情况是否可能?我已经研究过matheval和eval,但是我不太确定它们是否可以用于我的情况。

感谢您的帮助。 :)

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

将使用正确的值创建您的$x$y变量;

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