<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');

$input = '/58.584+87/-4-882*-18=';

$regexp = '/((\\/|\\*|\\+|\\-)(\\/|\\*|\\+))|(^(\\/|\\*|\\+))/';
if (preg_match($regexp, $input)) {
	echo "Выражение введено с ошибкой";
	exit;
}

$regexp = '/(?<=\\d)(\\+|\\*|\\/|\\-)(?=(\\-)?\\d(\\.)?)/';
$numbersAndSteps[0] = preg_split($regexp, $input, 0, PREG_SPLIT_NO_EMPTY);
foreach($numbeAndSteps[0] as $number) {
	$number = floatval($number);
}

$regexp = '/((?<=\\+|\\*|\\/|\\-)\\-?\\d+\\.?\\d*)|(^\\-\\d+\\.?\\d*)/';
$numbersAndSteps[1] = preg_split($regexp, $input, 0, PREG_SPLIT_NO_EMPTY);

$amountOfNumbers = count($numbersAndSteps[0]);

$sum = $numbersAndSteps[0][0];
for ($i = 0; $i < $amountOfNumbers ; $i++) {
	
	$followingNumber = $numbersAndSteps[0][$i+1];

    if($numbersAndSteps[1][$i] == '+'){		
		$sum = $sum + $followingNumber;
	} elseif ($numbersAndSteps[1][$i] == '-'){		
		$sum = $sum - $followingNumber;
	} elseif($numbersAndSteps[1][$i] == '*'){
		$sum = $sum * $followingNumber;
	} elseif ($numbersAndSteps[1][$i] == '/'){		
		$sum = $sum / $followingNumber;
	}
}

echo "Ответ: {$sum}";