我正在尝试从变量/数组执行运算符。
我有一个这样的数组:
Array
(
[0] => Array
(
[0] => Array
(
[0] => 6
[1] => +
[2] => 2
[3] => +
[4] => 4
)
[1] => Array
(
[0] => 6
[1] => +
[2] => 2
[3] => -
[4] => 4
)
[2] => Array
(
[0] => 6
[1] => +
[2] => 2
[3] => *
[4] => 4
)
数组中的总运算符和整数是动态的。我可以有 7 个整数和 6 个运算符。它始终是格式[int + op + int + op +int ....]
我在想用eval()
. 我知道 eval 是邪恶的,不建议使用,但我不会在公共场合使用它。
我被这种代码的平静所困扰:
function getResults($array) {
$result = array();
foreach($array as $key => $subarray) {
$eval = '';
$result[$key] = array();
foreach($subarray as $subsubarray) {
$exec = '';
foreach($subsubarray as $data) {
$exec .= ' ' . $data;
}
ltrim($exec ,' ');
$result = eval("?>$exec");
echo $result;
}
}
}
当我执行这个我得到这个:
6 + 2 + 4
6 + 2 - 4
6 + 2 * 4
6 + 2 / 4
6 - 2 + 4
6 - 2 - 4
6 - 2 * 4
6 - 2 / 4
....
我期望得到如下结果:
8
4
14
我该怎么做?