how to merge some elements array in php? -



how to merge some elements array in php? -

example:

array ( [0] => 35 [1] => - [2] => 59 [3] => * [4] => 2 [5] => / [6] => 27 [7] => * [8] => 2 )

then calculated:

59*2=118

and new array is:

array ( [0] => 35 [1] => - [2] => 118 [3] => / [4] => 27 [5] => * [6] => 2 )

this original source : input ($_post['numbers']) string, like:

65*6/6+5-5

class calculator { //property private $str=''; private $len=0; private $ar_str=array(); private $ar_design=array(); private $ar_sum=array(); private $ar_min=array(); private $ar_mult=array(); private $ar_divi=array(); //method public function __construct($str1=''){ $this->str=$str1; $this->len=strlen($this->str); $this->ar_str=str_split($this->str); if($this->ar_str[0] == '+' || $this->ar_str[0] == '-' || $this->ar_str[0] == '*' || $this->ar_str[0] == '/' || $this->ar_str[$this->len-1] == '+' || $this->ar_str[$this->len-1] == '-' || $this->ar_str[$this->len-1] == '*' || $this->ar_str[$this->len-1] == '/' ){ exit("syntax error!"); }else if(!filter_var($this->ar_str[0], filter_validate_int)){ exit("just utilize numbers , 4 operators!"); } $this->ar_design[0]=$this->ar_str[0]; //start $j=1; for($i=1;$i<$this->len;$i++){ if($this->ar_str[$i] == '+' || $this->ar_str[$i] == '-' || $this->ar_str[$i] == '*' || $this->ar_str[$i] == '/'){ if($this->ar_str[$i-1] == '+' || $this->ar_str[$i-1] == '-' || $this->ar_str[$i-1] == '*' || $this->ar_str[$i-1] == '/'){ exit("syntax error!"); }else{ $this->ar_design[$j]=$this->ar_str[$i]; $j++; } }else if(filter_var($this->ar_str[$i], filter_validate_int)){ if($this->ar_str[$i-1] == '+' || $this->ar_str[$i-1] == '-' || $this->ar_str[$i-1] == '*' || $this->ar_str[$i-1] == '/'){ $this->ar_design[$j]=$this->ar_str[$i]; }else{ $j--; $this->ar_design[$j]=$this->ar_design[$j].$this->ar_str[$i]; } $j++; }else{ exit("just utilize numbers , 4 operators!"); } }//end of print_r($this->ar_design);//array array should calculate!!!!! }//end build

}

if(isset($_post['numbers'])){ $num_str=trim($_post['numbers']); if($num_str!=''){ $num_str = str_replace('`','+',$num_str); new calculator($num_str); } }

i find answer:

$this->len_d=count($this->ar_design); $this->ar_cal[0]=$this->ar_design[0]; $k=1; for($i=1;$i<$this->len_d;$i++){ if($this->ar_design[$i] == '*'){ $k--; $this->ar_cal[$k]=$this->ar_design[$i-1]*$this->ar_design[$i+1]; $i++; }else{ $this->ar_cal[$k]=$this->ar_design[$i]; } $k++; } print_r($this->ar_cal);

you loop , executing it.

$array=array (35,'-',59,'*',2,'/',27,'*',2); foreach ($array $value){ $stringify.=$value; } echo 'calculation looks this: '.$stringify.'<br/>'; function calculate( $math ){ $calc = create_function("", "return (" .$math. ");" ); homecoming $calc(); } echo calculate($stringify);

could imroved, illustration validating input...

working example: http://allanthya.net/arrcalc2.php

php arrays

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -