Smarty替换和阵列

时间:2012-08-02 17:20:37

标签: php arrays smarty

我正在为一些公寓工作。

我在foreach循环中将一些数据分配给Smarty。

$i = 0;
foreach ($obj2 as $array) {
   $smarty->assign('name'.$i, $obj2[$i]['name']);
   $smarty->assign('numbedrooms'.$i, $obj2[$i]['number_of_bedrooms']);
   $smarty->assign('numbathrooms'.$i, $obj2[$i]['number_of_bathrooms']);
   $smarty->assign('sqfeet'.$i, $obj2[$i]['square_feet']);
   $smarty->assign('deposit'.$i, $obj2[$i]['deposit']);
   $smarty->assign('rent'.$i, $obj2[$i]['rent']);
   $smarty->assign('vacantunits'.$i, $obj2[$i]['vacant_units']);
   $i++;
}

加载模板时($smarty->display('template.tpl');)我希望所有数据都可以通过replace获得(例如replace:'[[lowestrate]]':{$lowestrate}(来自另一个代码块的示例))。

但是,由于$obj2中的项目数量可能会发生变化(目前为3),我不能只说replace:'[[name1]]':{$name1}。 (更不用说需要多长时间)

此外,需要替换的原因是页面内容是使用WYSIWYG编辑器从CMS系统管理的,编辑器可以在其中键入[[lowestrate]]以将其替换为成本最低的公寓。他们应该能够键入[[name1]]以将其替换为第一套公寓的名称,或者[[numberbedrooms1]]替换为公寓1所拥有的卧室数量。

有没有人知道我应该怎么做呢?

1 个答案:

答案 0 :(得分:0)

这听起来像你应该在PHP级别做的工作,而不是智能级别。我建议你在分配给smarty之前做替换,然后发送转换后的数组,它会更容易(并且更清洁imho)