2017-10-10 82 views
-1

我做了查询,并在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; 

回答

0

你可以尝试这样的:

$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 
) 
相关问题