изменить используемую переменную в для цикла

У меня есть следующая проблема:

У меня есть некоторые переменные в моем сценарии.
Теперь я хочу обработать их в цикле for, но не знаю, как мне решить мою маленькую проблему.

Моя идея состояла в том, чтобы каждый раз менять номер (в имени) моей переменной.

Это мой сценарий

<?php

$tropfenzahl = 2;

$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

for($i = 1; $i <= $tropfenzahl; $i++) {
echo $v1_d1;
echo $v1_w2;
}
?>

В следующий раз я хочу повторить $ v1_d2 а также $ v1_w3 (до одного номера).

Я думаю, что решение очень простое, но я не понимаю его прямо сейчас = /

Хорошего вам!

-1

Решение

Если вы не хотите перебирать массив, но на самом деле по каким-то причинам вам нужно перебирать отдельные переменные, вы можете оставить переменные, которые вы хотите использовать, в качестве строк, а затем использовать двойные $$ чтобы получить к ним доступ:

$tropfenzahl = 4;

$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

$d_variable = "v1_d1";
$w_variable = "v1_w2";

for($i = 1; $i <= $tropfenzahl; $i++) {
echo $$d_variable;
echo $$w_variable;

$d_variable++;
$w_variable++;
}
3

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

Используйте массивы. http://php.net/manual/en/language.types.array.php

$tropfenzahl = 4;
$v1_d = [10, 30, 50, 70];
$v1_w = [20, 40, 60, 80];

for($i = 0; $i < $tropfenzahl; $i++) {
echo $v1_d[$i];
echo $v1_w[$i];
}
2

Если вы просто повторяете диапазон чисел, я сбит с толку, почему вы просто не делаете:

echo implode(range(10, 40, 10));

https://3v4l.org/lquQQ

Если у вас есть произвольный набор переменных, которые вы хотите зациклить, используйте компактный () функция, чтобы поместить их в массив.

<?php
$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

foreach (compact('v1_d1', 'v1_w2', 'v1_d2', 'v1_w3') as $var) {
echo $var;
}

https://3v4l.org/1dYIY

1

Вы смотрите на это неправильно. Может быть, попробовать это

<?php

$tropfenzahl = 4;

$myArray = array(10,20,30,40);

foreach ($myArray  as $numbers) {
if ($tropfenzahl == 4) {
# do something
}else{
# Do something else
}
}

?>

если вы хотите зациклить числа корыта, они должны быть в массиве

0
По вопросам рекламы [email protected]