Php 如何切换数学运算符并将计算存储在循环中?
我需要在循环中执行一个计算,在此循环中,每隔一次迭代都应该将Php 如何切换数学运算符并将计算存储在循环中?,php,loops,math,toggle,formula,Php,Loops,Math,Toggle,Formula,我需要在循环中执行一个计算,在此循环中,每隔一次迭代都应该将+更改为-,反之亦然 $mainNumber = 6; $finalData = []; $operator = '+'; for ($i = 1; $i <= $mainNumber; $i++) { switch ($operator) { case '-': $operator = '+'; break; case '+':
+
更改为-
,反之亦然
$mainNumber = 6;
$finalData = [];
$operator = '+';
for ($i = 1; $i <= $mainNumber; $i++) {
switch ($operator) {
case '-':
$operator = '+';
break;
case '+':
$operator = '-';
break;
}
$finalData[] = "$mainNumber $operator $i";
}
dd($finalData);
反而
array:5 [▼
0 => "5"
1 => "8"
2 => "3"
3 => "10"
4 => "1"
5 => "12"
]
只需在循环中执行计算,而不是创建字符串(然后需要对其进行
求值):
$mainNumber = 6;
$finalData = [];
$operator = '-';
for ($i = 1; $i <= $mainNumber; $i++) {
switch ($operator) {
case '-':
$finalData[] = $mainNumber - $i;
$operator = '+';
break;
case '+':
$finalData[] = $mainNumber + $i;
$operator = '-';
break;
}
}
print_r($finalData);
我发现开关块非常冗长。你可以用数学来做一行
如果$i
为奇数,则将其设置为等式中的负因子。换句话说,您总是向$mainNumber
添加一个正值或负值$i
代码:()
补充说明:
当您需要多次评估同一条件并对照可预测的静态奇异值检查结果时,开关块最有价值。这种情况只需要检查操作符是加号还是减号——换句话说,如果不是。在这里实现切换案例没有任何价值
使用eval()。您想要的输出是6-1
还是5
?
$mainNumber = 6;
$finalData = [];
$operator = '-';
for ($i = 1; $i <= $mainNumber; $i++) {
switch ($operator) {
case '-':
$finalData[] = $mainNumber - $i;
$operator = '+';
break;
case '+':
$finalData[] = $mainNumber + $i;
$operator = '-';
break;
}
}
print_r($finalData);
Array (
[0] => 5
[1] => 8
[2] => 3
[3] => 10
[4] => 1
[5] => 12
)
$mainNumber = 6;
$finalData = [];
for ($i = 1; $i <= $mainNumber; ++$i) {
$finalData[] = $mainNumber + (($i & 1 ? -1 : 1) * $i);
}
var_export($finalData);
array (
0 => 5,
1 => 8,
2 => 3,
3 => 10,
4 => 1,
5 => 12,
)