2013-04-10 3 views
0

я задаюсь вопросом о том, как реализовать динамическую переменную приращения, это мой PHPдинамической переменной имя массива в Smarty

<?php 

$sections =5; 

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

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

это мой умник шаблон

{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} 

кто может вести меня по как реализовать динамическую переменную increment на smarty?

кажется, я потерял здесь

ответ

1

Я не уверен, если есть причина для подхода вы начали вниз, но это будет легче читать ответ, чем комментарий.

Вместо динамических имен переменных, почему бы просто не использовать массивы? Это должно быть эквивалентно тому, что вы хотите, я думаю:

<?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); 

И тогда (это, вероятно, может быть упрощена дальше, но я оставил его как похожа на вашу, как это возможно, так что вы можете увидеть, что я изменил):

{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} 

Кстати, что <h3> не выглядело совсем правильно, поэтому я догадался, что это должно было быть.

+0

Большое вам спасибо, я пробовал этот метод. но это не дало мне моих желаемых результатов. $ products - это уже массив. и помещение массива в массив дает мне головокружение .. hehe ты мне немного помог. Я ценю это – faiz

+0

Если двумерный массив (очень общая структура в PHP-коде, поэтому будет иметь множество примеров для просмотра) смущает вас, то динамически названные переменные (которые очень необычны и не очень поддерживаются большинством функций) будет хуже, а не лучше. – IMSoP

+0

owh? действительно? плохо заметим, что – faiz