计算数值的差异
Calculate difference in numeric values
我有两个变量:
$low = 0;
$high = 100;
使用这两个变量,我想设置 4 个新变量,从低值开始到高值。所以在这种情况下,它将是:
$low = 0;
$value_1 = 20;
$value_2 = 40;
$value_3 = 60;
$value_4 = 80;
$high = 100;
我可以做些什么计算来实现这个目标?设置 $low
和 $high
值只是为了帮助解释我的问题。这两个值由用户设置。
阅读您的更新后,也许 range 足以满足您的需求:
$low = 0; $high = 100; $steps = 5;
$value = range($low, $high, ($high-$low)/$steps);
print_r($value);
Array
(
[0] => 0
1 => 20
2 => 40
[3] => 60
[4] => 80
[5] => 100
)
See test at eval.in(link即将到期)
只是 运行 一个循环并创建一个变量。使用下面的代码
<?php
$low = 0;
$high = 100;
$step = 20;
$f = 0;
for($i=$low; $i<=$high; $i+=$step){
${"variable_$f"} = $i;
$f++;
}
echo $variable_1;
希望对您有所帮助。
你可以使用for循环来创建一个数组
$low
、&high
和 $step
可以有任何值
$low = 0;
$high = 100;
$step = 20;
$var = array();
for($x = 0; $x < $high/$step; $x++) {
if($x == $low || $x == $high) {
continue;
} else {
$var[$x] = $x * $step;
}
}
数组看起来像
Array ( [1] => 20 [2] => 40 [3] => 60 [4] => 80 )
如果我理解正确的话,您希望 $low 和 $high 之间的距离在四个值之间平均分布。
我认为该算法在下面的代码中很容易解释...
<?php
$low = 0; //substitute user entry
$high = 100; //substitute user entry
$difference = $high - $low;
$increment = $difference/5;
//we use 5 because we need four divisible values, you can change this
//based on how many incremental values you want.
$step = $low;
echo $low."<br>";
for($x=0;$x<4;$x++)
{
$step+=$increment;
echo $step."<br>";
}
echo $high."<br>";
?>
对于 $low = 0, $high = 100
- 这将打印:
0
20
40
60
80
100
对于 $low = 57, $high = 94
- 这将打印:
57
64.4
71.8
79.2
86.6
94
对于 $low =222, $high = 1000
- 这将打印:
222
377.6
533.2
688.8
844.4
1000
您可以根据需要round()
。还要确保对 $low 和 $high 进行基本验证,例如,$low 实际上小于 $high 等。
我将从 $low 中减去 $high,然后除以我想要的变量数。示例:
$低=50;
$高 = 1498;
我想创建 4 个变量。
($高 - $低) / 4 = 362
现在我知道 $step 了,我可以做 for 循环了
for ($low; $low =< $high; $low + $step) {}
您可以像这样简单而具体地编写代码:
`<?php`
$low = 0;
$high = 100;
$stepInc = 20;
$i ;
for ($i=$low; $i <= $high ; $i+=$stepInc) {
echo $i . "<br>";
}
?>
and the out will be:
0
20
40
60
80
100
我有两个变量:
$low = 0;
$high = 100;
使用这两个变量,我想设置 4 个新变量,从低值开始到高值。所以在这种情况下,它将是:
$low = 0;
$value_1 = 20;
$value_2 = 40;
$value_3 = 60;
$value_4 = 80;
$high = 100;
我可以做些什么计算来实现这个目标?设置 $low
和 $high
值只是为了帮助解释我的问题。这两个值由用户设置。
阅读您的更新后,也许 range 足以满足您的需求:
$low = 0; $high = 100; $steps = 5;
$value = range($low, $high, ($high-$low)/$steps);
print_r($value);
Array ( [0] => 0 1 => 20 2 => 40 [3] => 60 [4] => 80 [5] => 100 )
See test at eval.in(link即将到期)
只是 运行 一个循环并创建一个变量。使用下面的代码
<?php
$low = 0;
$high = 100;
$step = 20;
$f = 0;
for($i=$low; $i<=$high; $i+=$step){
${"variable_$f"} = $i;
$f++;
}
echo $variable_1;
希望对您有所帮助。
你可以使用for循环来创建一个数组
$low
、&high
和 $step
可以有任何值
$low = 0;
$high = 100;
$step = 20;
$var = array();
for($x = 0; $x < $high/$step; $x++) {
if($x == $low || $x == $high) {
continue;
} else {
$var[$x] = $x * $step;
}
}
数组看起来像
Array ( [1] => 20 [2] => 40 [3] => 60 [4] => 80 )
如果我理解正确的话,您希望 $low 和 $high 之间的距离在四个值之间平均分布。
我认为该算法在下面的代码中很容易解释...
<?php
$low = 0; //substitute user entry
$high = 100; //substitute user entry
$difference = $high - $low;
$increment = $difference/5;
//we use 5 because we need four divisible values, you can change this
//based on how many incremental values you want.
$step = $low;
echo $low."<br>";
for($x=0;$x<4;$x++)
{
$step+=$increment;
echo $step."<br>";
}
echo $high."<br>";
?>
对于 $low = 0, $high = 100
- 这将打印:
0
20
40
60
80
100
对于 $low = 57, $high = 94
- 这将打印:
57
64.4
71.8
79.2
86.6
94
对于 $low =222, $high = 1000
- 这将打印:
222
377.6
533.2
688.8
844.4
1000
您可以根据需要round()
。还要确保对 $low 和 $high 进行基本验证,例如,$low 实际上小于 $high 等。
我将从 $low 中减去 $high,然后除以我想要的变量数。示例:
$低=50; $高 = 1498;
我想创建 4 个变量。
($高 - $低) / 4 = 362
现在我知道 $step 了,我可以做 for 循环了
for ($low; $low =< $high; $low + $step) {}
您可以像这样简单而具体地编写代码:
`<?php`
$low = 0;
$high = 100;
$stepInc = 20;
$i ;
for ($i=$low; $i <= $high ; $i+=$stepInc) {
echo $i . "<br>";
}
?>
and the out will be:
0
20
40
60
80
100