Php smarty中的动态变量数组名称

Php smarty中的动态变量数组名称,php,smarty,Php,Smarty,我想知道如何实现一个动态增量变量, 这是我的php <?php $sections =5; for($g=1; $g<=$sections; $g++){ $smarty->assign(array( 'products-'.$g => $dbvariable, 'add_display-'.$g => $othervar )); } $smarty->assign('number', $sections); ?>

我想知道如何实现一个动态增量变量, 这是我的php

<?php 

$sections =5;

for($g=1; $g<=$sections; $g++){
$smarty->assign(array(
        'products-'.$g => $dbvariable,
        'add_display-'.$g => $othervar ));
}

$smarty->assign('number', $sections);
?>

这是我的smarty模板

{assign var=cnt value=1}
{while $cnt <= $number}
{foreach from=$products-`.$cnt` item=prod name=mysection}
<div class="section-{$cnt}">
// my output here
 <h3>{$products-`$cnt`.name}</h3>
  <img src="{$add_display-`$cnt`.src}">
</div>
{/foreach}
{assign var=cnt value=$cnt+1}
{/while}
{assign var=cnt value=1}

{while$cnt我不确定您开始采用的方法是否有原因,但这将更容易理解为一个答案,而不是一个评论

与其使用动态变量名,不如只使用数组?我认为这应该与您想要的相同:

<?php 

$sections =5;

$products = array();
$add_display = array();
for($g=1; $g<=$sections; $g++){
    $products[$g] = $dbvariable;
    $add_display[$g] = $othervar;
}

$smarty->assign('products', $products);
$smarty->assign('add_display', $add_display);
$smarty->assign('number', $sections);

非常感谢,我尝试过这个方法。但是它没有给我想要的结果。$products已经是一个数组了。把数组放到一个数组中会让我头晕目眩。呵呵,你帮了我一点忙。我很感激它是一个二维数组(PHP代码中非常常见的结构,所以会有很多例子看)让你困惑的是,动态命名变量(这是非常不寻常的,大多数函数都不支持)会更糟,而不是更好。噢?真的吗?我会注意到这一点
{assign var=cnt value=1}
{while $cnt <= $number}
    {foreach from=$products[$cnt] item=prod name=mysection}
    <div class="section-{$cnt}">
        // my output here
        <h3>{$prod.name}</h3>
        <img src="{$add_display[$cnt].src}">
    </div>
    {/foreach}
{assign var=cnt value=$cnt+1}
{/while}