Рассчитать разницу в числовых значениях

У меня есть две переменные:

$low = 0;
$high = 100;

Используя эти две переменные, я хочу установить 4 новые переменные, начиная с низкого значения и заканчивая высоким. Так что в этом случае это будет:

$low = 0;
$value_1 = 20;
$value_2 = 40;
$value_3 = 60;
$value_4 = 80;
$high = 100;

Какой расчет я могу сделать, чтобы достичь этого? $low а также $high значения были установлены только для того, чтобы помочь объяснить мой вопрос. Эти два значения устанавливаются пользователем.

2

Решение

Если я правильно понимаю, вы хотите, чтобы расстояние между $ 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 и т. Д.

2

Другие решения

Возможно, после прочтения ваших обновлений спектр достаточно для ваших нужд:

$low = 0; $high = 100; $steps = 5;

$value = range($low, $high, ($high-$low)/$steps);

print_r($value);

массив
(
[0] => 0
1 => 20
2 => 40
[3] => 60
[4] => 80
[5] => 100
)

Смотрите тест на eval.in (ссылка скоро истекает)

1

Просто запустите цикл и создайте переменную. Используйте код ниже

<?php
$low = 0;
$high = 100;
$step = 20;

$f = 0;
for($i=$low; $i<=$high; $i+=$step){
${"variable_$f"} = $i;
$f++;
}
echo $variable_1;

Надеюсь, это поможет вам.

0

Я бы вычел $ high из $ low и затем разделил бы на число переменных, которые я хочу получить. Пример:

$ low = 50;
$ high = 1498;

Я хочу создать 4 переменные.

($ high — $ low) / 4 = 362

Теперь я знаю шаг $ и могу выполнить цикл for

для ($ low; $ low =< $ Высокий; $ low + $ step) {}

0

Вы можете использовать цикл для создания массива
$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 )
0

Вы можете написать код так просто и конкретно:

`<?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
0
По вопросам рекламы [email protected]