如何使用另一个变量的文本和值创建php变量

如何使用另一个变量的文本和值创建php变量,php,Php,希望在另一个变量的值之前和之后使用文本创建一个php变量 for($i=0; $i<$numOfTeams; $i++) { echo $teamAbbr[$i]."<br>"; $TeamWins = 'vs' . $teamAbbr[$i] . '_W'; echo "TeamWins=$TeamWins<br>"; $TeamWinsHold = $rows[$TeamWins]; echo "Tea

希望在另一个变量的值之前和之后使用文本创建一个php变量

for($i=0; $i<$numOfTeams; $i++) {    
    echo $teamAbbr[$i]."<br>";      
    $TeamWins = 'vs' . $teamAbbr[$i] . '_W';
    echo "TeamWins=$TeamWins<br>";
    $TeamWinsHold = $rows[$TeamWins];
    echo "TeamWinsHold=$TeamWinsHold<br>";
    $$TeamWins[] = $TeamWinsHold;
}
变量。但我只看到没有文本的作业示例

$vsBOA_W[]=$rows['vsBOA_W'];

// BOA = team 3-char abbreviation. Looking for something similar to above but insert 3-char abbreviations based on a input file.

$numOfTeams = 3;    // Determined from external source

$teamAbbr = array("BOA","CAA","CHN");   // For simplicity for this example. This array would normally be created from an external source. 

for($i=0; $i<$numOfTeams; $i++) {   // I know I can use size of array instead of nunOfTeams. That's not the issue. 

    echo $teamAbbr[$i]."<br>";      // for testing

    $$("vs".{'$teamAbbr[$i]'}."_W[]"} = $rows['$$("vs".{'$teamAbbr[$i]'}."_W"}']; // a total guess
}
for($i=0; $i<$numOfTeams; $i++) {    
    echo $teamAbbr[$i]."<br>";      
    $TeamWins = 'vs' . $teamAbbr[$i] . '_W';
    echo "TeamWins=$TeamWins<br>";
    $TeamWinsHold = $rows[$TeamWins];
    echo "TeamWinsHold=$TeamWinsHold<br>";
    $$TeamWins[] = $TeamWinsHold;
}
为了宝儿

for($i=0; $i<$numOfTeams; $i++) {    
    echo $teamAbbr[$i]."<br>";      
    $TeamWins = 'vs' . $teamAbbr[$i] . '_W';
    echo "TeamWins=$TeamWins<br>";
    $TeamWinsHold = $rows[$TeamWins];
    echo "TeamWinsHold=$TeamWinsHold<br>";
    $$TeamWins[] = $TeamWinsHold;
}
更新#2:我尝试了以下步骤(分解每个步骤),并在$$TeamWins分配中得到相同的错误

for($i=0; $i<$numOfTeams; $i++) {    
    echo $teamAbbr[$i]."<br>";      
    $TeamWins = 'vs' . $teamAbbr[$i] . '_W';
    echo "TeamWins=$TeamWins<br>";
    $TeamWinsHold = $rows[$TeamWins];
    echo "TeamWinsHold=$TeamWinsHold<br>";
    $$TeamWins[] = $TeamWinsHold;
}

对于($i=0;$i我不太理解示例中的行之间的相互作用。但是根据猜测赋值,您可以通过预先形成变量名来简化:

for($i=0; $i<$numOfTeams; $i++) {    
    echo $teamAbbr[$i]."<br>";      
    $TeamWins = 'vs' . $teamAbbr[$i] . '_W';
    echo "TeamWins=$TeamWins<br>";
    $TeamWinsHold = $rows[$TeamWins];
    echo "TeamWinsHold=$TeamWinsHold<br>";
    $$TeamWins[] = $TeamWinsHold;
}
<?php

$rows  = ['xFOOy'=>[], 'xBARy'=>[], 'xBAZy'=>[]];
$items = ['FOO', 'BAR', 'BAZ'];

foreach($items as $abbr)
{
    $name = 'x' . $abbr . 'y';
    ${$name}[] = $rows[$name];
}

为了澄清,我希望将此代码用于多个表。一个表有一组团队(例如:BOA、CAA、CHN),另一个表有另一组团队(例如:ABC、DEF、GHI)。外部文件告诉php代码要处理哪些团队(可以是全部团队,也可以是少数团队)。请尝试
${$TeamWins}[]
。行的原因参考,$rows['vsBOA_W'],是指我正在循环浏览团队的所有年份/记录,并以数组形式显示,$vsBOA_W[],可以更新。$$name[]=$rows[$name];返回一个错误:无法使用[]阅读请参见我的更新#2。@user2140857,您必须使用一个生命终止的PHP版本,经过编辑以解决该错误。正确。使用PHP5.6。这不是生产代码。永远不会。从来没有要求使用7.0。也许我现在这样做了?