Aşağıdaki kodu kullanabilirsiniz. Tabii ki, bazı sınırlamaları var. Ne yapmak istediğinize ve neden yaptığınıza bağlı.
<?php
$array = array(
'20',
'-',
'5',
'*',
'10'
);
$output = null;
$symbol = null;
foreach ($array as $item) {
if ($item == '+' || $item == '-' || $item == '*' || $item == '/') {
if ($output === null) {
die("First item should be numeric! ");
}
$symbol = $item;
continue;
} elseif (!is_numeric($item)) {
die("unknown symbol: " . $item);
}
// is numeric
// first symbol
if ($output == null) {
$output = $item;
continue;
}
if ($symbol === null) {
die('Two numbers in a row!!');
}
switch ($symbol) {
case '+':
$output += $item;
break;
case '-':
$output -= $item;
break;
case '*':
$output *= $item;
break;
case '/':
$output /= $item;
break;
}
}
echo "Calculation is: " . $output;
'20 - 5 = 5' tamam. – Rizier123
Ne kadar farklı işlenen olabilir? (4/2) * 5 - 1 'gibi bir şey 9 numara dizisinde bir olasılık olabilir mi? –
opertore, bir dizideki +, -, *,/ancak işlenenlerin sayısı tanımlanmayacaktır, ancak sorum bu diziyi kullanarak nasıl çözülür? –