PHP / MySQL - 将变量名称递增为循环数据

时间:2017-08-31 20:10:10

标签: php mysql sql

我的teams表中有一行名为player1player2player3 ... player12。在PHP脚本中,我将它们设置为变量($player1$player2 ...),并希望循环遍历它们以检查它们是否为NULL,以及它们是否不计算它们。

如何在PHP中增加变量?我试过这样做:

<?
    $playerspicked = 0;
    for($i = 1; $i <= 12; $i++) {
        $playercheck = "$player"+$i;
        if($playercheck != 0) {
            $playerspicked++;
        }
    }
?>

但这不会起作用。

2 个答案:

答案 0 :(得分:3)

您可以使用复杂表达式(大括号{})围绕变量名称执行此操作。

if(empty(${"player$i"})) {
    //player$i is empty
}

复杂表达式允许您动态设置变量名称。

为了帮助您更好地了解这些工作方式,我将向您展示 你也可以使用这些就像常规字符串连接一样

$variable = "many test";
echo "this is a test echo. {$variable}";

我通常使用它来根据键

为许多数组变量生成变量
$array = array("key1" => "value1", "key2" => "value2");
foreach($array as $key => $value) {
    ${$key} = $value;
}

上面的代码会创建2个变量$key1$key2,并带有与之关联的适当值。

或者,我很确定你可以在你的变量的前面添加另一个$,但我会说这更难以阅读并弄清楚发生了什么。

$playercheck = "player"+$i;  
if($$playercheck != 0) {
    $playerspicked++;
}

答案 1 :(得分:1)

在你的情况下,有一种更容易的方法来计算团队中所有非空的玩家。

echo count(array_filter($ yourTeam));

没有第二个参数的array_filter函数将自动删除空条目。