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


Put a counter on the name of a variable

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

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内容的末尾,而不是变量本身

感谢您的帮助

您应该能够使用复杂的字符串语法({})。

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');";
}