PHP - 在for循环中更改使用的变量

时间:2018-01-05 22:31:59

标签: php variables for-loop web-project

我有以下问题:

我的脚本中有一些变量。 现在我想在for循环中处理它们,但不知道如何解决我的小问题。

我的想法是每次更改变量的数量(名称中)。

这是我的剧本

@echo off & setLocal enableExtensions disableDelayedExpansion

call :makeTab tab
echo(words%tab%separated%tab%by%tab%tabs

endLocal & goto :EOF

:makeTab result=
:: returns tab char in var name given as param
:: requires certUtil
setLocal
set "tabFile=%tmp%\tab.tmp"

if not exist "%tabFile%" (
    >"%tabFile%" echo(09
    certUtil -decodeHex -f "%tabFile%" "%tabFile%" >nul
) %= if =%

for /f "useBack delims=" %%T in ("%tabFile%") do (
    endLocal & set "%1=%%T"
) %= for /f =%
exit /b 0 %= makeTab =%

下次我想回复 $ v1_d2 $ v1_w3 (上一个数字)。

我认为解决方案非常简单,但我现在没有理解= /

有个好人!

4 个答案:

答案 0 :(得分:3)

如果您不想循环遍历数组,但实际上确实需要循环显示单独的变量,您可以保留要用作字符串的变量,然后使用双$$访问它们:

$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++;
}

答案 1 :(得分:2)

使用数组。 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 :(得分:1)

如果你只是回应了一系列的数字,我们就会为你的原因而感到困惑:

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

https://3v4l.org/lquQQ

如果您想要循环的任意变量集,请使用compact()函数将它们放入数组中。

<?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

答案 3 :(得分:0)

你正在以错误的方式看待这个问题。也许尝试一下

<?php

$tropfenzahl = 4;

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

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

?>

如果你想循环数字,他们需要在数组中