在变量名称上放置一个计数器

Put a counter on the name of a variable

我想做的是获取变量名 $ingreso 并在末尾递增它以发送许多具有相同名称但末尾编号不同的变量,$ingreso1ingreso2 等,但我不知道如何正确连接它。 请帮助。

PHP代码:

 while ( $cont<= 15){           
      $sql = "INSERT INTO ingreso (vlr_ingreso, periodo_ingreso, proyecto_id_proyecto)
              VALUES ('$ingreso".$cont."','$cont','$proyecto_id');";
      $insert = mysqli_query($con, $sql);
    }

但它一直返回 $ingreso 而末尾没有数字。

我认为它的发生是 $cont 被添加到 $ingreso 内容的末尾,而不是变量本身

感谢您的帮助

您应该可以使用 complex string syntax ({}).

while ( $cont<= 15){           
    $sql = "INSERT INTO ingreso (vlr_ingreso, periodo_ingreso, proyecto_id_proyecto)
          VALUES ('${'ingreso'.$cont}','$cont','$proyecto_id');";
    $insert = mysqli_query($con, $sql);
}

这样,${'ingreso'.$cont} 将在字符串中被解析为 $ingreso1$ingreso2

(此外,正如 AbraCadaver 评论的那样,您还需要增加 $cont 才能使其生效。)


如果您可以更早地在代码中进行更改,以便这些是数组键而不是单独的变量,这会更容易。例如,如果你有一个像这样的数组:

$ingreso[1] = 'something';
$ingreso[2] = 'something else';
$ingreso[3] = 'etc.';

那么你可以使用 foreach 循环来代替:

foreach ($ingreso as $periodo => $vlr) {
    $sql = "INSERT INTO ingreso (vlr_ingreso, periodo_ingreso, proyecto_id_proyecto)
            VALUES ('$vlr','$periodo','$proyecto_id');";
}