<?php

$example = '4*10+3-50+22/2='; //то, что будем считать
$number = 0; //цифра, которую будем формировать
$char = 'none'; //знак, который мы вытащили сейчас
$op = 'none'; //знак, который был в прошлый раз
$result = 0;	

for ($i=0; ; $i++) { 
	
	$getSingleOne = substr($example, $i, 1); //вынимаем по очереди каждый элемент из строки

	if (is_numeric($getSingleOne)) {
		$number = ($number * 10) + intval($getSingleOne);
	} else {
		$char = $getSingleOne;

	    if (preg_match('/=/', $op) == TRUE) {
	    	break;
	    } elseif (preg_match('/[+]/', $op) == TRUE || preg_match('/none/', $op) == TRUE) {
	    	 $result += $number;
	    } elseif (preg_match('/-/', $op) == TRUE) {
	    	 $result -= $number;
	    } elseif (preg_match('/\//', $op) == TRUE) {
	    	$result /= $number;
	    } elseif (preg_match('/[*]/', $op) == TRUE) {
	    	$result *= $number;
	    }

		$number = 0;
		$op = $char;
	}
}

echo "{$example} {$result}";
?>