У меня есть две переменные:
$low = 0;
$high = 100;
Используя эти две переменные, я хочу установить 4 новые переменные, начиная с низкого значения и заканчивая высоким. Так что в этом случае это будет:
$low = 0;
$value_1 = 20;
$value_2 = 40;
$value_3 = 60;
$value_4 = 80;
$high = 100;
Какой расчет я могу сделать, чтобы достичь этого? $low
а также $high
значения были установлены только для того, чтобы помочь объяснить мой вопрос. Эти два значения устанавливаются пользователем.
Если я правильно понимаю, вы хотите, чтобы расстояние между $ 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 = 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 (ссылка скоро истекает)
Просто запустите цикл и создайте переменную. Используйте код ниже
<?php
$low = 0;
$high = 100;
$step = 20;
$f = 0;
for($i=$low; $i<=$high; $i+=$step){
${"variable_$f"} = $i;
$f++;
}
echo $variable_1;
Надеюсь, это поможет вам.
Я бы вычел $ high из $ low и затем разделил бы на число переменных, которые я хочу получить. Пример:
$ low = 50;
$ high = 1498;
Я хочу создать 4 переменные.
($ high — $ low) / 4 = 362
Теперь я знаю шаг $ и могу выполнить цикл for
для ($ low; $ low =< $ Высокий; $ low + $ step) {}
Вы можете использовать цикл для создания массива
$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 )
Вы можете написать код так просто и конкретно:
`<?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