【问题标题】:Put a counter on the name of a variable [duplicate]在变量名称上放置一个计数器[重复]
【发布时间】:2016-11-16 21:36:57
【问题描述】:

我想要做的是取变量名$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 内容的末尾,而不是变量本身

感谢您的帮助

【问题讨论】:

  • 看起来你正确地连接它,但没有增加它。
  • 任何时候你发现自己在这样做,你真的应该使用数组。

标签: php html syntax concat


【解决方案1】:

您应该可以使用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');";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-23
    • 2014-03-13
    • 2021-08-01
    • 2015-04-02
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多