在OctoberCMS中定义变量,所以可以做数学运算
问题描述:
我做了查询,并在DB表中有前缀和公式。 我使用OctoberCMS是基于Laravel在OctoberCMS中定义变量,所以可以做数学运算
$formulas = Product::join('pivot', 'products.id', '=', 'pivot.product_id')
->join('formulas', 'pivot.formulas_id', '=', 'formulas.id')
->select('formulas.prefix','formulas.formula')
->get();
$prefix = $formulas->lists('prefix');
extract($prefix);
$prefix2 = implode(' $', $prefix);
$formula = $formulas->lists('formula');
if (preg_match('([aA-zZ])', $formula)) {
$formula2 = implode(' $', $formula);
$formula2 = get_class($formula);
}
else {
}
我做了查询,并在数据库表前缀和公式:
e 2a-b-c
f 4a*4
h a*2
我已经定义的前缀式
$a = 30;
$b = 2;
$c = 5;
我想将每个前缀定义为变量,所以可以做ma个功能:
$e = 2 $a - $b - $c;
答
你可以尝试这样的:
$arrPrefix = array('e' => '2a-b-c', 'h' => '4a*4', 'f' => 'a*2');
foreach ($arrPrefix as $key => $v) {
$result = "";
for($i = 0; $i <= strlen($v); $i++) {
$char = substr($v, $i, 1);
if(ctype_alpha($char))
{
$result .= "$". $char;
}
else
{
$result .= $char;
}
}
$output[] = "$".$key.'='.$result;
}
输出: 现在你的print_r($输出);结果是,
Array
(
[0] => $e=2$a-$b-$c
[1] => $h=4$a*4
[2] => $f=$a*2
)