PHP / MySQL – Incrementando o nome da variável para o loop para dados

Tenho filas na tabela de meus teams chamada player1 , player2 , player3player12 . No script PHP eu configurá-los como variables ​​( $player1 , $player2 …) e quero $player2 los para verificar se eles são NULL e se eles não devem contar.

Como posso incrementar uma variável em PHP? Eu tentei fazê-lo gosta disto:

 <? $playerspicked = 0; for($i = 1; $i  

mas isso não funcionaria.

Você pode fazer isso com expressões complexas (suportes curly {} ) em torno de um nome de variável.

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

expressões complexas permitem definir nomes de variables ​​dinamicamente.

Para ajudá-lo a entender melhor como estes funcionam, vou mostrar que você também pode usá-los, assim como concatenação de string regular, assim

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

Costumo usar isso para gerar uma variável para muitas variables ​​de matriz com base em sua chave

 $array = array("key1" => "value1", "key2" => "value2"); foreach($array as $key => $value) { ${$key} = $value; } 

O código acima criaria 2 variables, $key1 e $key2 , com o valor apropriado associado a elas.

Alternativamente, tenho certeza de que você pode apenas adicionar outros $ para a frente da sua variável, mas eu diria que isso é mais difícil de ler e descobrir o que está acontecendo.

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

No seu caso, há uma maneira muito mais fácil de contar todos os jogadores não nulos na equipe.

contagem de eco (array_filter ($ yourTeam));

A function array_filter sem um segundo parâmetro removerá automaticamente as inputs nulas.