Se me hizo muy curioso tu caso así que me puse a pensar un poco y logre realizar el siguiente código:
Código PHP:
<?php
$operacion = "58 - 2";
if ( !is_int ( $operacion ) )
{
$operaciones = array ( '+', '-', '*', '/' );
for ( $e = 0; $e < count ( $operaciones ); $e++ )
{
if ( strpos ( $operacion, $operaciones[$e] ) )
{
$posicion = strpos ( $operacion, $operaciones[$e] );
break;
}
else
{
continue;
}
}
$cual_operacion = substr ( $operacion, $posicion, 1 );
$calcula = explode ( $cual_operacion, $operacion );
switch ( $cual_operacion )
{
case '+':
echo $calcula[0] + $calcula[1];
break;
case '-':
echo $calcula[0] - $calcula[1];
break;
case '*':
echo $calcula[0] * $calcula[1];
break;
case '/':
echo $calcula[0] / $calcula[1];
break;
default:
echo '<p>No es una operación valida.</p>';
break;
}
}
else
{
echo $operacion;
}
?>
Donde $operación es la variable que recibes de tu consulta.
Nota: Este ejemplo lo tendrás que mejorar poniendole validaciones donde la variable $operacion solo tenga un sólo tipo de operación es decir que no realice esto si la variable contiene algo como esto: 16+15-2. Entonces este ejemplo sólo te sirve para hacer una sóla operación tendrás que hacerle algunas modificaciones si es que quieres que te resuelva una operación como esta: [18+2]/5. Como vez este ejemplo que te puse es muy sencillo pero de aquí puede que te des una idea para realizar lo que anteriormente de mencione.
Hojala te sirva de algo. Suerte