我有以下问题:
我的脚本中有一些变量。 现在我想在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 (上一个数字)。
我认为解决方案非常简单,但我现在没有理解= /
有个好人!
答案 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));
如果您想要循环的任意变量集,请使用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;
}
答案 3 :(得分:0)
你正在以错误的方式看待这个问题。也许尝试一下
<?php
$tropfenzahl = 4;
$myArray = array(10,20,30,40);
foreach ($myArray as $numbers) {
if ($tropfenzahl == 4) {
# do something
}else{
# Do something else
}
}
?>
如果你想循环数字,他们需要在数组中