For any kind of array like: [1, + , 4, -, 5, , 3, 8, + , 6]
Solved with the custom php helper function:
function calcArray($arrVal)
{
if (count($arrVal) == 1) {
return reset($arrVal);
}
if (is_int($arrVal[1])) {
$arrVal[0] = $arrVal[0].$arrVal[1];
unset($arrVal[1]);
return calcArray(array_values($arrVal));
}
$emptyValKey = array_search('', $arrVal);
if ($emptyValKey) {
$concatVal = $arrVal[$emptyValKey-1].$arrVal[$emptyValKey+1];
unset($arrVal[$emptyValKey+1]);
unset($arrVal[$emptyValKey]);
$arrVal[$emptyValKey-1] = $concatVal;
return calcArray(array_values($arrVal));
}
$total = $arrVal[1] == "+" ? $arrVal[0] + $arrVal[2]:$arrVal[0] - $arrVal[2];
unset($arrVal[0]);
unset($arrVal[1]);
unset($arrVal[2]);
array_unshift($arrVal, $total);
$arrVal = array_values(array_filter($arrVal));
return calcArray($arrVal);
}