Php 处理变量名不带$符号的字符串方程
我曾尝试使用搜索功能为我的用例找到解决方案,但我无法找到类似的情况。请帮我做这件事 我目前正在开发一个网页,从2个文本文件中读取名称和数字,并将其放入不同的数组中。 为了便于解释,我们假设:Php 处理变量名不带$符号的字符串方程,php,formula,equation,Php,Formula,Equation,我曾尝试使用搜索功能为我的用例找到解决方案,但我无法找到类似的情况。请帮我做这件事 我目前正在开发一个网页,从2个文本文件中读取名称和数字,并将其放入不同的数组中。 为了便于解释,我们假设: $namesarray = array("x","y"); $valuesarray = array("3","2"); 我还有一个单独的数组,其中包含从文本文件导入的公式,如下所示: $formulaname = array("data1","data2"); $formula = array("x+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;
我希望php自动为公式x和y分别使用3和2,尽管公式没有任何$符号将x和y表示为变量
有可能出现这种情况吗?我已经研究了matheval和eval,但我不太确定它们是否可以用于我的情况
谢谢您的帮助。:) 您可以使用关联数组,例如:
$variables = array('x' => 3, 'y' => 2);
$data1 = $variables['x'] + 2;
$data2 = $variables['x'] + $variables['y'];
将创建具有正确值的$x
和$y
变量
虽然使用基本
$data
数组及其x
和y
键可能更好,但如果这是用户输入的公式,使用eval()
肯定有风险谢谢您的建议。然而,我遇到的问题是等式(即x+y)是从文本文件中读取的,因此它是字符串格式的。定义每个等式是不可行的,因为每个文本文件大约有200多个等式,而且根据用户的选择,我们有很多文本文件。@user2749222但是。。如果你想使用变量,你还需要定义所有变量。谢谢你的建议。这部分解决了我的问题,即名称和值是字符串而不是变量。但是,php有没有办法自动识别字符串公式之类的东西,比如x+y,并使用$x和$y的相应值,而不是将方程当作字符串来处理?再次感谢您的帮助:)看看公认的调车场算法答案,看起来确实很有趣,但我认为它仍然需要我在公式中加入变量,才能使用php$符号。如示例所示,$answer=$math->evaluate(“($a+3)*4”);,它可以用“a”作为变量计算方程,但前提是前面有一个美元符号。我手头的主要问题是公式没有美元符号,因为它们只是从文本文件中读取。是否有任何方法可以可靠地解析带有一些变量的公式,但前面没有$符号来表示它们为php变量?再次感谢您的时间。它只需要变量在公式中具有前面的$
,只需对regexp进行简单的修改就可以消除这一点。。。。它至少应该为你的工作提供一个起点
$namesarray = array("x","y");
$valuesarray = array("3","2");
$data = array_combine(
$namesarray,
$valuesarray
);
extract($data);