我有一个动态阵列 让我们假设
pointer-event: none;
其结果将是20-5 = 5
未定义数组大小,如何动态解决?
答案 0 :(得分:2)
您可以使用以下代码。当然,它有一些局限性。取决于你想做什么以及你为什么这样做。
<?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;
答案 1 :(得分:1)
phps最讨厌和害怕功能的少数情况之一派上用场。
邪恶eval()
:
$input = array('20', '-', '5');
// build formula from array by glueing values together
$formula = implode(' ', $input);
// execute the formula and store result in $result
eval('$result = ' . $formula . ';');
// voila!
echo $formula . ' = ' . $result;
使用eval()
的好处是你可以使用php中已知的所有数学运算,甚至完全支持括号的处理。
访问http://sandbox.onlinephpfunctions.com/code/71ffc94238a5510cd7b24632fc7a8b9b5cb2c2c0以获取更多为测试定义的公式的工作示例。