Hola Erik! me habia puesto a probar y llegue a algo parecido, ahora el problema que se me presenta es el siguiente:
Yo hice esto:
if ( !is_int ( $operacion ) )
{
$indice=1;
$operaciones = array ( '+', '-', '*', '/' );
for ( $e = 0; $e < count ( $operaciones ); $e++ )
{
if ( strpos ( $operacion, $operaciones[$e] ) )
{
$posicion = strpos ( $operacion, $operaciones[$e] );
break;
}
else
{
$indice=0;
continue;
}
}
$i=1;
$cual_operacion = substr ( $operacion, $posicion, $i );
$calcula = explode ( $cual_operacion, $operacion );
$i=($i+2);
$x=1;
$acumula=$calcula[0];
while ($calcula[$x]!='')
{
switch ( $cual_operacion )
{
case "*": $acumula= $acumula * $calcula[$x];
$indice=1;
break;
case "+": $acumula= $acumula + $calcula[$x];
break;
case "-": $acumula= $acumula - $calcula[$x];
break;
case "/": $acumula= $acumula / $calcula[$x];
break;
default:
echo " $formula";
break;
} //fin del switch
$x++;
} //fin del while [$x]
echo " $acumula";
if ($indice==0)
{
echo " $formula";
};
?></strong></td>
<?
}
else
{
echo " $formula";
$acumula=$operacion;
$acumula2=$operacion;
}
}
$acumula2=($acumula);
$acumula_=($acumula_ + $acumula );
$neto_x_legajo=($neto_x_legajo + $acumula);
Donde lo que intento es acumular el resultado final de cuando sale del while, osea.
si en un while resolvio 400+50+20, y en otro 20*3 que me lo sume.
HAGO LA igualacion $acumula=$operacion; para que cuando cuando no se cumple el if del !is_int , tambien me pueda sumar esos valores a $acumula para que me sume el resultado de 400+50+20, 20*3 y 17 suponiendo que era una entrada la cual no fue analizada en el switch.
La verdad estoy re mareadaaaaaaaa ya no me doy cuenta de nada!!
Ojala puedas ayudarme!! y graciassssss!!!