Php smarty中的动态变量数组名称
我想知道如何实现一个动态增量变量, 这是我的phpPhp 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
$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}