PHP:如何正确计算循环中的嵌套变量?
嗯。以下是基本知识:PHP:如何正确计算循环中的嵌套变量?,php,variables,evaluate,Php,Variables,Evaluate,嗯。以下是基本知识: for ($k=1;$k<3;$k++) { ${'var'.$k} = 'foo'; } // so far so good for ($j=1;$J<3;$j++) { $dbq .= "stuff {$var{$k}} "; } // problem here ^^ ^^ 我正在寻找$dbq来呈现给stuff foo stuff foo。但我不知道该怎么做。我可以在循环中设置变量没有问题,但是我不知道如何在循环中正确地计算它。当我尝试
for ($k=1;$k<3;$k++) {
${'var'.$k} = 'foo';
} // so far so good
for ($j=1;$J<3;$j++) {
$dbq .= "stuff {$var{$k}} ";
} // problem here ^^ ^^
我正在寻找$dbq来呈现给stuff foo stuff foo。但我不知道该怎么做。我可以在循环中设置变量没有问题,但是我不知道如何在循环中正确地计算它。当我尝试这个时,PHP爆炸了。我需要变量的值。它甚至不是真正的变量,因为没有真正的引用;不是想误导,我只是不知道该怎么称呼它
如果有更好的方法,那就开导我吧P
蒂亚。哦 输出循环中的语法不太正确,它基本上与赋值循环相同。您确实需要使用与循环变量j相同的名称,而不是k: 最终,尽管最好的解决方案是阵列:
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
} // so far so good
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff {$var[$j]} ";
}
echo $dbq;
输出循环中的语法不太正确,它基本上与赋值循环相同。您确实需要使用与循环变量j相同的名称,而不是k: 最终,尽管最好的解决方案是阵列:
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
} // so far so good
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff {$var[$j]} ";
}
echo $dbq;
2个问题:-
for ($j=1; $j<3; $j++) { //capital J needs to be small j
输出:-
最好的方法是使用数组:
输出:
更简单的方法是:
输出:2个问题:-
for ($j=1; $j<3; $j++) { //capital J needs to be small j
输出:-
最好的方法是使用数组:
输出:
更简单的方法是:
输出:您可以将foo字符串存储在一个数组中,而不是创建单独的变量:$vars[]='foo';然后在第二个循环中,执行:$dbq.='struff'$变量[$j]。';。您可以将foo字符串存储在一个数组中,而不是创建单独的变量:$vars[]='foo';然后在第二个循环中,执行:$dbq.='struff'$变量[$j]。';。明亮的谢谢我通常会使用一个数组,但这是解析JSON转储的一部分,所以我只是将它强行插入db查询,这样我就不必做任何额外的处理。是的,我在变量上做了复制粘贴。谢谢你的帮助回来告诉你这对我来说是一种解脱。非常感谢你。这也适用于@anant。你们。。。非常感谢。这是许多备份工作的关键,我非常感激。时间太长,罐子里的怪物太少…:D@WhiteRau别担心,我很高兴我们能帮你摆脱困境。太棒了。谢谢我通常会使用一个数组,但这是解析JSON转储的一部分,所以我只是将它强行插入db查询,这样我就不必做任何额外的处理。是的,我在变量上做了复制粘贴。谢谢你的帮助回来告诉你这对我来说是一种解脱。非常感谢你。这也适用于@anant。你们。。。非常感谢。这是许多备份工作的关键,我非常感激。时间太长,罐子里的怪物太少…:D@WhiteRau不用担心,我很高兴我们能帮你摆脱困境。我现在看到了。我是如此接近。非常感谢你而且,是的,数组是最佳的,但这是为了db查询而将糟糕的JSON乱七八糟的东西分块的一部分,所以我尝试跳过额外的步骤。否则,是的:阵列FTW。谢谢你帮我排字。。。我累了P@WhiteRau很高兴帮助你:。现在你可以标记答案来结束这个问题。我现在看到了。我是如此接近。非常感谢你而且,是的,数组是最佳的,但这是为了db查询而将糟糕的JSON乱七八糟的东西分块的一部分,所以我尝试跳过额外的步骤。否则,是的:阵列FTW。谢谢你帮我排字。。。我累了P@WhiteRau很高兴帮助你:。现在您可以标记答案以结束此问题。
$dbq .= "stuff ${'var'.$j} "
<?php
$var=[];
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
}
$dbq = ''; //define variable first
for ($j=1;$j<3;$j++) {
$dbq .= "stuff $var[$j] "; //check syntax change
}
echo $dbq;
<?php
$var= array_fill(1,2,'foo');
$dbq = '';
foreach($var as $v){
$dbq .= "stuff $v ";
}
echo $dbq;